其他分享
首页 > 其他分享> > .net Core 5.0 Log4Net 全局注册

.net Core 5.0 Log4Net 全局注册

作者:互联网

(168条消息) .net Core 5.0 Log4Net 全局注册_u011714257的博客-CSDN博客

1、NuGet安装Log4Net

 

 

2、创建LogHelper帮助类

using log4net;
using log4net.Config;
using log4net.Repository;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;

namespace netCore5Log4NetTest
{
public class LogHelper
{
private static ILoggerRepository repository { get; set; }
private static ILog _Loginfo;
private static ILog _Logerror;

private static ILog LogInfo
{
get
{
if (_Loginfo == null)
{
Configure();
}
return _Loginfo;
}
}
private static ILog LogError
{
get
{
if (_Logerror == null)
{
Configure();
}
return _Logerror;
}
}

public static void Configure(string repositoryName = "NETCoreRepository", string configFile = "log4net.config")
{
repository = LogManager.CreateRepository(repositoryName);
XmlConfigurator.Configure(repository, new FileInfo(configFile));
_Logerror = LogManager.GetLogger(repositoryName, "logerror");
_Loginfo = LogManager.GetLogger(repositoryName, "loginfo");
}

public static void Info(string msg)
{
LogInfo.Info(msg);
}

public static void Warn(string msg)
{
LogInfo.Warn(msg);
}

public static void Error(string msg)
{
LogError.Error(msg);
}
public static void Info(object ex)
{
LogInfo.Info(ex);
}

public static void Debug(object message, Exception ex)
{
LogInfo.Debug(message, ex);
}

public static void Warn(object message, Exception ex)
{
LogInfo.Warn(message, ex);
}

public static void Error(object message, Exception ex)
{
LogError.Error(message, ex);
}

public static void LogErrorInfo(Exception ex, object message)
{
LogError.Error(message, ex);
}
public static void Info(object message, Exception ex)
{
LogInfo.Info(message, ex);
}
}
}

3、创建Log4Net 配置文件log4net.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!-- This section contains the log4net configuration settings -->
<log4net>
<logger name="logerror">
<level value="ALL" />
<appender-ref ref="ErrorAppender" />
</logger>
<!--信息日志类-->
<logger name="loginfo">
<level value="ALL" />
<appender-ref ref="InfoAppender" />
</logger>
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\LogInfo\\" />
<param name="AppendToFile" value="true" />
<!--保证多个日志文件后缀名:log.1.htm-->
<param name="PreserveLogFileNameExtension" value="true" />
<!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
<param name="MaxSizeRollBackups" value="-1" />
<!--每个文件的大小。只在混合方式与文件大小方式下使用。超出大小后在所有文件名后自动增加正整数重新命名,数字最大的最早写入。可用的单位:KB|MB|GB。不要使用小数,否则会一直写入当前日志-->
<param name="MaximumFileSize" value="100MB" />
<!--计数类型为1,2,3…-->
<!--<param name="CountDirection" value="1"/>-->
<!--是否只写到一个文件中-->
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyyMMdd&quot;.htm&quot;" />
<!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
<param name="RollingStyle" value="Composite" />
<!-- 信息日志布局-->
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="&lt;HR COLOR=blue&gt;%n日志时间:%d [%t] &lt;BR&gt;%n日志级别:%-5p &lt;BR&gt;%n日 志 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;" />
</layout>
</appender>
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\LogError\\" />
<param name="AppendToFile" value="true" />
<!--保证多个日志文件后缀名:log.1.htm-->
<param name="PreserveLogFileNameExtension" value="true" />
<!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
<param name="MaxSizeRollBackups" value="-1" />
<!--每个文件的大小。只在混合方式与文件大小方式下使用。超出大小后在所有文件名后自动增加正整数重新命名,数字最大的最早写入。可用的单位:KB|MB|GB。不要使用小数,否则会一直写入当前日志-->
<param name="MaximumFileSize" value="100MB" />
<!--是否只写到一个文件中-->
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyyMMdd&quot;.htm&quot;" />
<!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
<param name="RollingStyle" value="Composite" />
<!--布局-->
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="&lt;HR COLOR=red&gt;%n异常时间:%d [%t] &lt;BR&gt;%n异常级别:%-5p &lt;BR&gt;%n异 常 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;" />
</layout>
</appender>
</log4net>
</configuration>
4、最后一步初始化日志配置

 

然后就不用所有地方依赖注入了,可以全局使用。

 

标签:5.0,Core,void,Log4Net,static,ex,using,message,public
来源: https://www.cnblogs.com/lzjsky/p/15732237.html