log4net的总结之日志配置

一直在用Log4Net做日志的处理,网上也有很多的介绍,开始使用都是直接在网上找了配置说明,然后就开始用了。后来也完善了系统的日志处理,但是感觉对Log4Net并没有系统的总结,其实网上也有很多的总结,所以我就在这里针对自己在做一次总结,自己在以后也可以直接用了。

    Log4Net是日志记录控件,能方便地将日志信息记录到文件、控制台、Windows事件日志和数据库,可以记载控制要记载的日志级别,可以记载的日志类别包括:FATAL(致命错误)、ERROR(一般错误)、WARN(警告)、INFO(一般信息)、DEBUG(调试信息)。Log4Net有四种主要的组件,分别是Logger(记录器), Repository(库), Appender(附着器)以及 Layout(布局).
    Log4Net在配置文件中大体分为两类<congfigSections></congfigSection>和<log4net></log4net>。
    <congfigSections></congfigSection>跟C#配置文件中的节点一样,用来申明自定义节点解析的类名和程序集
    eg:<!--添加自定义节点:log4net type:解析类名,程序集名(log4net.dll)-->
            <section name="log4net"type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>    
    <log4net><logn4et>是设置Log4Net 的配置信息,该节点的子节点也可以分为<root></root>和<appender></appender>两类
    <root></root>是对设置输出的指定
    eg:<root>
           <!--指定DEBUG输出的文件形式记录日志-->
           <level value="DEBUG"/>
           <appender-ref ref="Log4Net_ERROR" />
            </root> 
            level节点是指定输出的文件形式记录日志,控制级别有低到高,ALL|DEBUG|INFO|WANRN|ERROR|FATAL|OFF,
            比如定义了INFO,那么DEBUG日志不会被记录,默认为DEBUG;
            appender-ref是<appender>的名称
    <appender></appender>是对输出的设置
    eg:   <!--定义输出到文件中-->

            <appender name="Log4Net_ERROR"type="log4net.Appender.RollingFileAppender">
                <!--定义文件存放位置--> 
                <file value="C:/log4net/"/> 
                <!--是否追加到文件,默认为true,通常无需设置--> 
                <appendToFile value="true"/>
                <!--回滚样式--> 
                <RollingStyle value="Date"/>
                <!--日期的格式,每天换一个文件记录,如不设置则永远只记录一天的日志,需设置--> 
                <DatePattern value="INFO_yyyyMMdd&quot;.log&quot;"/>
                <!--日志文件名是否为静态--> 
                <StaticLogFileName value="false"/> 
                <!--多线程时采用最小锁定-->
                <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> 
                <!--布局(向用户显示最后经过格式化的输出信息)-->
                <layout type="log4net.Layout.PatternLayout"> 
                    <!-- %m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息%n(newline):换行%d(datetime):输出当前语句运行的时刻%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数%t(thread id):当前语句所在的线程ID%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等%c(class):当前日志对象的名称,例如:%L:输出语句所在的行号%F:输出语句所在的文件名%-数字:表示该项的最小长度,如果不够,则用空格填充-->
                    <!--头-->
                    <Header value="[Header]&#13;&#10;"/> 
            <!--脚注-->
                    <Footer value="[Footer]&#13;&#10;"/>
                    <!--正文--> 
                    <ConversionPattern value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline"/> 
                </layout> 
             </appender>
         appender->name:表示该appender的名称
                        ->type:表示日志输出的方式
                                    1 AnsiColorTerminalAppender:在ANSI 窗口终端写下高亮度的日志事件。                                    
                                     2 AspNetTraceAppender:能用asp.net中Trace的方式查看记录的日志。                                     
                                     3 BufferingForwardingAppender:在输出到子Appenders之前先缓存日志事件。

                                     4 ConsoleAppender:将日志输出到控制台。
                                     5 EventLogAppender:将日志写到Windows Event Log. 
                                     6 FileAppender:将日志写到文件中。
                                     7 LocalSyslogAppender:将日志写到local syslog service (仅用于UNIX环境下). 
                                     8 MemoryAppender:将日志存到内存缓冲区。
                                     9 NetSendAppender:将日志输出到Windows Messenger service.这些日志信息将在用户终端的对话框中显示。
                                     10 RemoteSyslogAppender:通过UDP网络协议将日志写到Remote syslog service。
                                     11 RemotingAppender:通过.NET Remoting将日志写到远程接收端。
                                     12 RollingFileAppender:将日志以回滚文件的形式写到文件中。
                                     13 SmtpAppender:将日志写到邮件中。
                                     14 TraceAppender:将日志写到.NET trace 系统。

                                     15 UdpAppender:将日志connectionless UDP datagrams的形式送到远程宿主或以UdpClient的形式广播。
          appender节点下的其他参数,见上面的实例中的注释
          正文ConversionPattern 有出现有 %d  [%t],对照表可提供参考:
            %m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息 

            %n(new line):换行 
            %d(datetime):输出当前语句运行的时刻 
            %r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数 
            %t(thread id):当前语句所在的线程ID 
            %p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等 
            %c(class):当前日志对象的名称,例如:
            %L:输出语句所在的行号 
            %F:输出语句所在的文件名 
            %-数字:表示该项的最小长度,如果不够,则用空格填充
    Log4Net的配置总结主要是为了方便自己,如果对园里的博友有用,也是很荣幸的事情。
 
参考博客:
http://www.cnblogs.com/caokai520/p/4387491.html
http://blog.csdn.net/pfe_nova/article/details/12225349
http://blog.csdn.net/zhoufoxcn/article/details/6029021
posted @ 2016-02-25 10:42  无材补天  阅读(833)  评论(0)    收藏  举报