C# 在项目中配置Log4net

时间:2023-12-25 15:46:16

我们介绍一下在项目中配置log4net,是Apache基金会旗下的。

无论在什么环境中,配置log4net的逻辑都一样。

1)文件配置

首先在项目加载文件中,配置log4net加载项。

在Web项目中在web.config配置,在系统服务、桌面程序在app.config配置。

比如,在web.config中加入配置:(注意section元素是在configSections之下)

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />

再在configuration节点下添加:

<log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<!--日志记录器logger,可以有多个-->
<logger name="WebSvrLog">
<level value="ERROR" />
<appender-ref ref="RollingLogFileAppender" />
</logger>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--log存放的路径-->
<param name="File" value="_log_" />
<param name="AppendToFile" value="true" />
<param name="StaticLogFileName" value="false" />
<param name="MaximumFileSize" value="10MB" />
<param name="Threshold" value="ALL" />
<param name="DatePattern" value="yyyyMM&quot;\\log_&quot;yyyyMMdd&quot;.log&quot;" />
<param name="RollingStyle" value="Composite" />
<param name="CountDirection" value="1" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] %X{auth} - %m%n" />
</layout>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
</appender>
</log4net>

注意修改一下.NETFramework的version,这里是4.5.

配置的问题一看名字就知道是什么意思了,这里不详述。有一个说明的是logger的name=WebSvrLog,代码要调出这个配置需要用到name来获取。这里level是ERROR级别,还有WARN/DEBUG级别。

2)加载log配置文件

在上面配置了log文件之后,要加载。如果在web项目中,在Global文件中加载就可以了。加载代码如下:

log4net.Config.XmlConfigurator.Configure(new FileInfo(Server.MapPath("~/Web.config")));

如果你是其他文件,就选择加载其他路径的文件。

3)在代码上写一个全局的Log就行了,代码如下:

static log4net.ILog Log = log4net.LogManager.GetLogger("WebSvrLog");

这行代码意思是根据name获取log。

可以关注本人的公众号,多年经验的原创文章共享给大家。

C# 在项目中配置Log4net

完毕