log4net记录系统错误日志到文本文件用法详解

log4net是一个完全免费开源的插件,可以去官网下载源码。

一般系统操作日志不会用log4net,自己写代码存入数据库更方便合理,但是系统部署后运行在客户环境,难免会发生系统bug、崩溃、断网等无法预知的错误,但是又不想让客户看到,又便于我们开发人员跟踪调试,这时log4net就显示出很大的威力来了,它会把这种问题记录到我们程序的一个文件里,可以做到比如每天记录一个txt文件,或者文件到一定大小自动到下一个文件等。

具体用法如下:

一、去官网下载一个log4net.dll的文件

      也可以把源码下载下来,自行编译dll均可。

二、把log4net.dll引用到我们的项目中

三、在webconfig或appconfig平级建一个叫log4net.config的配置文件(其中log4net.config名字不可修改),如下:

<?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&quot;.log&quot;" /><!-- 日期文件命名格式-->
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <header value="[Header]&#13;&#10;" />
        <footer value="[Footer]&#13;&#10;" />
        <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="ALL" />
       <!--A对应自定义变量:定义日志记录到文件中-->
       <appender-ref ref="RollingLogFileAppender" /> 
    </root>
  </log4net>
</configuration>
View Code

四、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个方法。
 }

posted @ 2013-08-28 17:18  沙漠绿洲uibe  阅读(997)  评论(0编辑  收藏  举报