zoukankan      html  css  js  c++  java
  • log4net 配置

     log4net主要有Appenders(输出媒介)、Filters(过滤器)、Layouts(布局)、Loggers(日志类别)、Object Renders(渲染器)组成。

    log4net配置示例

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
      </configSections>
      <log4net>
        <root>
            <level value="DEBUG" />
            <appender-ref ref="Console" />
            <appender-ref ref="RollingFile" />
        </root>
        <appender name="Console" type="log4net.Appender.ConsoleAppender">
            <layout type="log4net.Layout.PatternLayout">
                <!-- Pattern to output the caller's file name and line number -->
                <conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />
            </layout>
        </appender>
        
        <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
            <file value="example.log" />
            <appendToFile value="true" />
            <maximumFileSize value="100KB" />
            <maxSizeRollBackups value="2" />
    
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%level %thread %logger - %message%newline" />
            </layout>
        </appender>
      </log4net>
    </configuration>
        
    View Code

    配置方式1:直接配置在web.config或app.config中

    配置方式2:可以配置在自定义文件中***.***,文件内容格式同web.config或app.config

    <root>为根节点

    <logger>继承<root>,logger输出日志时,<root>也输出。示例

     <logger name="loginfo">
          <level value="INFO" />
          <appender-ref ref="InfoAppender" />
     </logger>

    Logger提供了多种方式来记录一个日志消息,也可以有多个Logger同时存在。每个实例化的Logger对象对被log4net作为命名实体(Named Entity)来维护。log4net使用继承体系,也就是说假如存在两个Logger,名字分别为a.b.c和a.b。那么a.b就是a.b.c的祖先。每个Logger都继承了它祖先的属性

    <level>为日志等级;由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF;比如定义级别为<level value="INFO"/>,则INFO级别向下的级别,比如DEBUG日志将不会被记录;如果没有定义LEVEL的值,则缺省为DEBUG

    <appender>为输出媒介,常用有AdoNetAppender(输出到数据库),AspNetTraceAppender(输出到ASP.NET日志),ConsoleAppender(输出到console),BufferingForwardingAppender(按信息条数输出到console),ColoredConsoleAppender/ManagedColoredConsoleAppender(根据设定颜色输出到console),EventLogAppender(输出到操作系统应用程序日志),FileAppender(输出到文件),RollingFileAppender(有回收的输出到文件),SmtpAppender(输出到邮件),RemotingAppender(远程输出)

     <filter>过滤器,用来过滤输出源输出的内容,其中包括:

    ·DenyAllFilter 阻止所有的日志事件被记录

    ·LevelMatchFilter 只有指定等级的日志事件才被记录

    ·LevelRangeFilter 日志等级在指定范围内的事件才被记录

    ·LoggerMatchFilter Logger名称匹配,才记录

    ·PropertyFilter 消息匹配指定的属性值时才被记录

    ·StringMathFilter 消息匹配指定的字符串才被记录

    示例:

    <appender name="infoAppender" type="log4net.Appender.RollingFileAppender">
            <filter type="log4net.Filter.LevelMatchFilter">
                <levelToMatch value="INFO" />
            </filter>
            <filter type="log4net.Filter.DenyAllFilter" />

    ......

     </appender>

    log4net layout ConversionPattern常用符号说明

       %m,%message:输出的日志消息;

       %M,%method:输出调用日志输出的方法名;

       %n,%newline:输出一个回车换行符;

       %d,%date:输出当前语句运行的时刻,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出2015-03-10 14:53:28;也可以%d{ISO8601}输出2015-03-10 14:51:12,220, %d{DATE}输出‘10 Mar 2015 14:51:51,318’, %d{ABSOLUTE}输出14:54:07,943,%d{HH:mm:ss,fff}, %d{dd MM yyyy HH:mm:ss,fff},yyyy年份,MM月份,dd日期,HH小时小时24制,hh小时12小时制,mm分钟,ss秒,fff毫秒(f为秒的精确位数,几个f代表精确到小数点后几位)

       %r(runtime),%timestamp:输出程序从运行到执行到当前语句时消耗的毫秒数;

       %t,%thread:当前语句所在的线程ID ;

       %p(priority),%level: 输出日志的当前日志级别,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG;

       %C(class),%class,%type:输出当前日志对象的名称,%C{1}输出日志调用最后第一个类;

       %c(category), %logger:输出日志信息所属目录类型logger name

       %L,%line:输出语句所在的行号;

       %l,%location:输出%F%L%C%M

       %F,%file: 输出语句所在的文件名;

       %a,%appdomain:输出引发日志事件的应用程序域的友好名称

       %x,%ndc : 输出(nested diagnostic context)ndc上下文内容

       %X,%mdc:输出(mapped diagnostic context)mdc上下文内容

       %P,%property: 输出事件的特殊属性。例如: %property{user} 输出user属性

       %[-|.]数字: %10,表示最小长度为10,如果不够,则用空格左侧填充;%-10,表示最小长度为10,如果不够,则用空格右侧填充;%.10,表示最大长度为10;可以与%m等其他格式组合使用,示例%10m,%-10m,%10.10m,%-10.10m

       %%:输出%

    log4net 启动配置

      方式1:assemblyInfo.cs 文件中添加[assembly: log4net.Config.XmlConfigurator(ConfigFile = "***.***", Watch = true)],ConfigFile为文件名,缺省为监控app.config或web.config;Watch为是否需要监视文件改变。

      方式2:在app.config或web.config配置文件中添加appSettings

      <appSettings>

          <add key="log4net.Config" value="***.***"/>

          <add key="log4net.Config.Watch" value="True"/>

      </appSettings>

    官方地址:http://logging.apache.org/log4net/

    配置示例:http://logging.apache.org/log4net/release/config-examples.html

    其中按天,限制文件大小,限制文件个数复合配置:

    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
        <file value="logfile" />
        <appendToFile value="true" />
        <rollingStyle value="Composite" />
        <datePattern value="yyyyMMdd" />
        <maxSizeRollBackups value="10" />
        <maximumFileSize value="1MB" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
        </layout>
    </appender>

      

  • 相关阅读:
    给窗体加个圣诞帽——抛砖引玉
    《高手寂寞》随感
    离职日记-计划与变化
    什么样的生活
    这一年……
    写在2011第一天的工作前
    Visual C++ 学习笔记四 —— 模板
    bugfree安装与配置
    QTP环境变量的使用
    测试提问单[转]
  • 原文地址:https://www.cnblogs.com/hobinly/p/log4net.html
Copyright © 2011-2022 走看看