对Log4net的一点总结

最近一直在学习log4net,有一些心得体会,把它记下来,与大家分享一下。

 

准备工作就不多说了吧,下载地址:http://logging.apache.org/log4net/

SDK地址:http://logging.apache.org/log4net/release/sdk/index.html

 

1.0 有了log4net.dll后,先把它复制到项目文件的bin/Debug下,当然也可以放到其它地方,自己随意。

然后就是修改配置使用程序集级别的特性的文件了(AssemblyInfo.cs),无论BS还是CS程序都可直接在项目的AssemblyInfo.cs文件里添加以下的语句:

[assembly: log4net.Config .XmlConfigurator()]

或者:[assembly:log4net.Config.XmlConfigurator(ConfigFile="",ConfigFileExtension="",Watch=true)]

 

{注释:

其中在root里面定义关联,否则该项日志不会有效。logger里面定义日志名称和输出级别,appender里面定义日志文件名称和路径,

layout里面定义输出样式,filter里面定义一些过滤条件。 

ConfigFile 如果指定,XmlConfigurator将使用该配置文件,文件的路径是相对应用项目的根目录(AppDomain.CurrentDomain.BaseDirectory),也可以是绝对路径。该属性不能与“ConfigFileExtension”属性一起使用。

ConfigFileExtension 如果指定,将对配置文件进行扩展。程序集的名字将追加到扩展文件名里,作为基本的名字。例如,如果程序集是从TestApp.exe文件中加载,并且log4net设置了ConfigFileExtension属性,则配置文件的名字是“TestApp.exe.log4net”,这相当于给TestApp.exe.log4net设置了ConfigFile属性。

配置文件将编译输出到项目根目录(AppDomain.CurrentDomain.BaseDirectory),程序集名和配置文件扩展名就是该配置的名字。

这个属性不能与ConfigFile属性一起使用。

Watch 如果指定并设置为“True”,那么框架将监视配置文件,每次配置修改将重新加载。

如果既没有指定ConfigFile, 也没有指定ConfigFileExtension,项目默认配置文件(例如:TestApp.exe.config)将作为log4net的配置文件。}

 

2.0 然后就是修改自己的配置文件App.config了。

    2.1 引入log4net

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

    2.2 下面就是详细配置log4net了 

         <log4net>
           <root>
             <level value="WARN" />
             <appender-ref ref="LogFileAppender" />

             <appender-ref ref="ConsoleAppender" />
             <appender-ref ref="LogAllToFile" />
             <appender-ref ref="AdoNetAppender" />
           </root>
           <logger name="testApp.Logging">   
             <level value="DEBUG"/>   
           </logger>
  
           <appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
             <param name="File" value="log-file.txt" />
             <param name="AppendToFile" value="true" />
             <layout type="log4net.Layout.PatternLayout">
               <param name="Header" value="[Header] "/>
               <param name="Footer" value="[Footer] "/>
               <param name="ConversionPattern" value="%d [%t] %-5p %c [%x]  - %m%n" />
             </layout>
             <filter type="log4net.Filter.LevelRangeFilter">
               <param name="LevelMin" value="DEBUG" />
               <param name="LevelMax" value="WARN" />
             </filter>
           </appender>

        </log4net>

 

 

3.0 最后就是在类中实例化该日志,在方法中给各个级别的日志添加上相应的日志内容,用于输出到控制台、保存到日志文件或数据库中。

 

//获取三个日志记录器。
        private static log4net.ILog oldLog = LogManager.GetLogger("testApp.Logging");
        private static log4net.ILog logger = LogManager.GetLogger(typeof(Program));
        private static readonly log4net.ILog logs = log4net.LogManager.GetLogger   (System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

 

 //由高到底的顺序,即OFF>Fatal>Error>Warn>Info>Debug>All 在root中定义的等级越高,显示的日志越少!
            //写入日志
            logs.Error("Error Acc logs");
            logs.Warn("Warn Acc logs");
            logs.Info("Info Acc logs");
            logs.Debug("Debug Acc logs");

            logger.Error("Error Acc logger");
            logger.Warn("Warn Acc logger");
            logger.Info("Info Acc logger");
            logger.Debug("Debug Acc logger");

            oldLog.Error("Error Acc oldLog");
            oldLog.Warn("Warn Acc oldLog");
            oldLog.Info("Info Acc oldLog");
            oldLog.Debug("Debug Acc oldLog");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值