WinForm中log4net配置说明和使用一

     由于最近在WinForm项目中用到log4net便查阅了相关资料。但发现关于log4net的文章很多,但说的太简陋了,经过实践后现把总结一下。内容如下:

     1.log4net的介绍

        log4net(Log For Net)是Apache开源的应用于.Net框架的日志记录工具,详细信息参见Apache网站.它是针对Java的log4j(Log For Java的)姊妹工具.用过log4j的都知道,它功能强大,可配置性灵活,线程安全,对日志的输出管理和级别管理方便。使用log4net需要知道其中两个比较重要的概念:logger 和 appender。前者是日志记录对象,后者是日志记录的目标载体,包括控制台,文件,定量大小的文件,远程广播。log4net的工作原理简单地说是这样的:获得一个用来记录日志的工具对象logger,然后为logger对象指定日志的记录位置。值得一提的是这一切工作都可以在应用程序的配置文件中完成,所需代码量极少。

     2.配置文件说明

       简单的拿一个配置文件来举例说明:--后边的文字表示注释内容

       <configuration>
         <configSections>  --在配置选项中加入log4net的引用
          <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
         </configSections>
         <log4net>
         <appender  name="LogFile" type="log4net.Appender.RollingFileAppender,log4net" >
          <param name="File" value="log.txt" /> --定义用文件来保存日志,生成的文件log.txt和应用程序生成的exe文件在同一目录下。
          <param name="AppendToFile" value="false" />
          <param name="RollingStyle" value="Date" />
          <param name="DatePattern" value="yyyy.MM.dd" />
          <param name="StaticLogFileName" value="true" />
          <layout type="log4net.Layout.PatternLayout,log4net">--定义输出风格
          <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
          <param name="Header" value="&#13;&#10;----------------------header--------------------------&#13;&#10;" />
          <param name="Footer" value="&#13;&#10;----------------------footer--------------------------&#13;&#10;" />
          </layout>
        </appender>

        <appender>

        --一个配置文件可以有很多appender,一个appender节就相当于一个日志输出介质或方法。

        </appender>
       <logger name="logApp"> --定义logger对象的名字为logApp,以方便在代码中使用,<logger>配置项可以不配置 
        <level value="ALL" />--定义输出的信息等级为所有其中包括Fatal.Error.Warn.Info.Debug
       </logger>
       <root>--定义日志输出的方式和等级
        <level value="INFO" />
       <appender-ref ref="LogFile" />--选择了文件输出,注意粗体部分对应的名称
       </root>
      </log4net>
     </configuration>

     3.Log4net的使用。

       使用步骤:

  • 在项目中添加log4net.dll的引用。
  • 关联配置文件。
  • 创建Ilog实例,便可以使用了。

      说明:关联配置文件一般是通过在AssemblyInfo.cs文件里添加以下的语句

             [assembly:log4net.Config.DOMConfigurator(ConfigFile="filename", ConfigFileExtension="ext",Watch=true/false)] 参数可以省略

             ConfigFile:指出了我们的配置文件的路径及文件名,包括扩展名。可省略

             ConfigFileExtension:如果我们对被编译程序的程序集使用了不同的文件扩展名,那么我们需要定义这个属性,缺省的,程序集的配置文件扩展名为”config”。

             Watch (Boolean属性): log4net框架用这个属性来确定是否需要在运行时监视文件的改变。如果这个属性为true,那么FileSystemWatcher将会被用来监视文件的改变,重命名 ,删除等事件。

     创建实例的方法:

        Log4net框架定义了一个叫做LogManager的类,用来管理所有的logger对象。它有一个GetLogger()静态方法,用我们提供的名字参数来检索已经存在的Logger对象。如果框架里不存在该Logger对象,它也会为我们创建一个Logger对象。如:ILog log = LogManager.GetLogger("logApp") //logApp是配置文件中<logger>定义的name属性值。

       我们会以类(class)的类型(type)为参数来调用GetLogger(),以便跟踪我们正在进行日志记录的类。传递的类(class)的类型(type)可以用typeof(Classname)方法来获得。

       如:ILog log = LogManager.GetLogger(this.GetType())//this.GetType()只限于部分地方可以这样写,最好用typeof(classname)。

       最后就可以使用创建后的实例了。如:log.Info("执行××××方法开始"), log.Error("****")等

     到此你就可以轻松使用log4net了,下一篇会给出一些配置信息的详细说明。欢迎大家提出建议。

 

posted on 2010-06-11 23:14  rikou  阅读(4153)  评论(0编辑  收藏  举报

导航