Log4net的使用步骤与解析

1.使用LogNet的步骤【正对windowForm程序】
  (1)在服务引用中添加log4net.
  (2)在.config文件中配置lognet.即创建XML文件
  (3)在AssenblyInfo文件中添加[assembly:]
  (4)在需要写日志的地方使用ILog类来写入日志。

2.分析每一个步骤
  (1)配置文件的解释。在.config文件中配置lognet.即创建XML文件.
    <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="ErrorAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="Log\\LogError\\" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="MaxFileSize" value="10240" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyyMMdd&quot;.htm&quot;" />
      <param name="RollingStyle" value="Date" />
      <!--布局-->
      <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>
      <!-- 信息日志附加介质-->
      <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="Log\\LogInfo\\" />
      <param name="AppendToFile" value="true" />
      <param name="MaxFileSize" value="10240" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyyMMdd&quot;.htm&quot;" />
      <param name="RollingStyle" value="Date" />
      <!-- 信息日志布局-->
      <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>
    </log4net>
  总结的来说我们的日志类的需求通常就是:
    1、能够按要求将日志写到不同的介质上(文件、数据库、邮件等);
    2、能够根据日志类型的不同,写到不同的位置;
    3、能根据信息的类型,改变日志的布局。
    配置文件中节点的解释: logger是负责日志的记录者,假设我们需要记录一些正常的运行时日志和出现异常时的错误日志,那么我们可以通过在配置文件当中添加两个Logger实现。
    appender提供记录的介质,前面谈到,我们可能要同时将数据记录到文件和数据库中,我们可以简单地通过编写appender实现,而且Log4Net当中已经默认提供了一些常用的appender,我们可以简单地修改一些配置文件就实现同时向数据库和同时向文件中写入的功能。
    layout负责把记入的内容格式化。其实就是决定日志文件要长什么样子。
    1).Logger节点的解释
      <logger name="logerror"> <!-- 日志类的名字-->
      <level value="ALL" /> <!-- 定义记录的日志级别-->
      <appender-ref ref="ErrorAppender" /><!-- 记录到什么介质中-->
      </logger>
    其中:level等级为None、Fatal、Error、Warn、debug、INfo、All(由高到底)——如果你定义DEBUG,那么低于
DEBUG级别以下的信息,将不会记入日志。
    2). appender节点的解释
      appender节点中,type=RollingFileAppender 的意思是将日志以回滚文件的形式写到文件中。
      File节点中规定了文件要写入到什么目录中,上例中的“Log\\LogError\\”代表写入到“程序输入目录(Debug目
录)\Log\LogError\”文件夹中。
      AppendToFile节点规定了是否覆写到文件中。假设我们已经有了一个20131028.htm日志文件,当为true的时候,
日志文件会附加到这个文件上。为false的时候,Log4Net会先将原来的日志文件备份,生成一个新的日志文件(见下图)。
    MaxFileSize 最大的文件大小。我们可以使用"KB", "MB" 或 "GB"为 MaxFileSize 作为后缀限定大小。默认的文件大小是10MB。
    RollingStyle是文件创建的方式。上例中市设置为以Date方式创建新文件。
    DatePattern 日期格式,当我们设置了RollingStyle 为Date方式后,Log4Net会自动使用DatePattern 中的日期格式来创建新的日志文件。          MaxSizeRollBackups这个属性用来设置,当日志文件达到MaxFileSize大小,就自动创建备份文件。备份文件的多少由MaxSizeRollBackups决定。比如说,我们是以日期格式作为日志文件名的,假设今天是2013-10-28,那么今天创建的日志文件名就是20131028.htm,当这个文件中要超过MaxFileSize的时候,Log4Net就自动将老的20131028.htm改名为20131028.htm.1,并创建一个新的20131028.htm文件。

    StaticLogFileName 是否采用静态文件名。因为我们这个例子是采用以日期作为文件名,每天的日志文件的名字都是动态的,所以上例中为false。如果采用静态文件名,那么日志文件的名字就是唯一确定的。可以参考下面的配置文件进行设置。下面的配置文件中就是采用静态文件名,生成的日志文件名都是log.txt。

    3)layout就是布局。
      Layout中的ConversionPattern就是日志文件的格式,一些符号的介绍附加在下面。由于格式化的方式比较多,除了下面介绍的,大家也可以自己看看官方文档。


  (2)在AssenblyInfo文件(修改程序集信息)中添加[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]
    ConfigFile:指出了我们的配置文件的路径及文件名,包括扩展名。
    ConfigFileExtension:如果我们对被编译程序的程序集使用了不同的文件扩展名,那么我们需要定义这个属性,缺省的,程序集的配置文件扩展名为”config”。
    Watch (Boolean属性): log4net框架用这个属性来确定是否需要在运行时监视文件的改变。如果这个属性为true,那么FileSystemWatcher将会被用来监视文件的改变,重命名,删除等事件。
    其中:ConfigFile和ConfigFileExtension属性不能同时使用,ConfigFile指出了配置文件的名字,例如,ConfigFile=”Config.txt”ConfigFileExtension则
是指明了和可执行程序集同名的配置文件的扩展名,例如,应用程序的名称是”test.exe”,ConfigFileExtension=”txt”,则配置文件就应该是”test.exe.txt”;
  (3)在需要写日志的地放写入:
    ILog log=logManager.GetLogger("MyLogger");
    log.debug("hello");

posted on 2016-11-11 17:49  水滴石穿—敏  阅读(210)  评论(0)    收藏  举报

导航