log4net是一个完全免费开源的插件,可以去官网下载源码。
一般系统操作日志不会用log4net,自己写代码存入数据库更方便合理,但是系统部署后运行在客户环境,难免会发生系统bug、崩溃、断网等无法预知的错误,但是又不想让客户看到,又便于我们开发人员跟踪调试,这时log4net就显示出很大的威力来了,它会把这种问题记录到我们程序的一个文件里,可以做到比如每天记录一个txt文件,或者文件到一定大小自动到下一个文件等。
具体用法如下:
一、去官网下载一个log4net.dll的文件
也可以把源码下载下来,自行编译dll均可。
二、把log4net.dll引用到我们的项目中
三、在webconfig或appconfig平级建一个叫log4net.config的配置文件(其中log4net.config名字不可修改),如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <!--<section name="log4net" type="System.Configuration.IgnoreSectionHandler" />--> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=1.2.11.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a" /> </configSections> <log4net> <!-- A对应自定义变量:定义日志记录到文件中的具体规则和属性配置 --> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <!--日志文件名--> <!--指定记录日志文件的位置(自定义,相对路径,跟目录下log文件夹下Error文件,可以有后缀)--> <file value="log/Error" /> <!--是否在文件中追加--> <appendToFile value="true" /><!--累计记录--> <!--<maxSizeRollBackups value="10" /> <maximumFileSize value="100" /> <rollingStyle value="Size" />--><!--可以按照文件大小自动创建新文件--> <rollingStyle value="Date" /><!--按照日期自动创建新文件--> <datePattern value="yyyyMMdd".log"" /><!-- 日期文件命名格式--> <staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <header value="[Header] " /> <footer value="[Footer] " /> <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" /> </layout> </appender> <root> <level value="ALL" /> <!--A对应自定义变量:定义日志记录到文件中--> <appender-ref ref="RollingLogFileAppender" /> </root> </log4net> </configuration>
四、Web.config 文件需要配置
在<appSettings>节点里面写上<add key="log4net.Config" value="log4net.config"/><add key="log4net.Config.Watch" value="True"/>
代码如下:....下面的两行代码很重要,必须写上!
<appSettings> <add key="webpages:Version" value="1.0.0.0"/> <add key="ClientValidationEnabled" value="true"/> <add key="UnobtrusiveJavaScriptEnabled" value="true"/> .................. <!--log4net--> <add key="log4net.Config" value="log4net.config"/> <add key="log4net.Config.Watch" value="True"/> </appSettings>
五、代码调用
在应该记录系统日志的代码类中写
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
try{...}
catch (Exception ex)
{
log.Error("未连接数据库....", ex);//此句表示记录错误信息到文本文件了,此方法重载2个方法。
}