zoukankan      html  css  js  c++  java
  • log4N配置方式

    方式一、

      

      <log4net>
        <!-- 启动日志 -->
        <appender name="PayAppender" type="log4net.Appender.RollingFileAppender">
          <param name="File" value="../Logs/Haier.Design.Web/Pay.log"></param>
          <param name="AppendToFile" value="true"></param>
          <param name="MaxSizeRollBackups" value="10"></param>
          <param name="MaximumFileSize" value="5MB"></param>
          <param name="RollingStyle" value="Size"></param>
          <param name="StaticLogFileName" value="true"></param>
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%d - %m%n"></param>
          </layout>
        </appender>
        <category name="Pay.Loger">
          <priority value="DEBUG"></priority>
          <appender-ref ref="PayAppender"></appender-ref>
        </category>
        <!--异常日志-->
        <appender name="LogAppender" type="log4net.Appender.RollingFileAppender">
          <param name="File" value="../Logs/Haier.Design.Web/"></param>
          <param name="AppendToFile" value="true"></param>
          <param name="MaxSizeRollBackups" value="10"></param>
          <param name="MaximumFileSize" value="3MB"></param>
          <param name="RollingStyle" value="Size"></param>
          <rollingStyle value="Date" />
          <datePattern value="yyyy-MM-dd&quot;.log&quot;" />
          <param name="StaticLogFileName" value="false"></param>
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%d(%p) %F(%L)%n %m%n"></param>
          </layout>
        </appender>
        <category name="Logerror">
          <priority value="ERROR|DEBUG"></priority> 
          <appender-ref ref="LogAppender"></appender-ref>
        </category>
      </log4net>

    方式二、

      

    <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="yyyy//yyyyMM//yyyyMMdd-hh'.txt'" />
          <param name="RollingStyle" value="Date" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%newline %n====================================== %n记录时间:%date %n线程ID:[%thread] %n日志级别:%-5level %n出错类:%logger property: [%property{NDC}]  %n错误描述:%n%message %newline %n--------------------------------------%n"/>
          </layout>
        </appender>
        <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
          <param name="File" value="Log//LogInfo//" />
          <param name="AppendToFile" value="true" />
          <param name="MaxSizeRollBackups" value="100" />
          <param name="MaxFileSize" value="10240" />
          <param name="StaticLogFileName" value="false" />
          <param name="DatePattern" value="yyyy//yyyyMM//yyyyMMdd-hh'.txt'" />
          <param name="RollingStyle" value="Date" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%newline %n====================================== %n记录时间:%date %n线程ID:[%thread] %n日志级别:%-5level %n出错类:%logger property: [%property{NDC}]  %n错误描述:%n%message %newline %n--------------------------------------%n"/>
          </layout>
        </appender>
      </log4net> 

    另外,log4N的优先级是有一定规则的,如下(摘自:http://blog.csdn.net/hu8hong9/article/details/2799199):

    Logger hierarchy(层次级别)

    Logger都是已经命名的实体。

    Logger的名称区分大小写并遵循以下规则:

    1、如果A logger的名称如果是B logger名称的前缀(通过“.”连接),则说A logger是B logger的祖父级。

    2、如果A logger的名称和B logger的名称之间不存在其他的logger名称,则A logger是B logger的父级。

            例子:A logger名称为“Foo.Bar”,B logger名称为“Foo.Bar.Baz”,A为B的父级。名称为“System”的logger是名称为“System.Text.StringBuilder”的祖父级。

    Root logger位于logger层次级别中的顶级。

    它有例外的三条规则:

    1、Root logger总是存在的。

    2、Root logger不能通过名称或取。

    3、Root logger 有一个默认的Level 值为 Debug。

    Logger 可以通过log4net.LogManager类的静态方法GetLogger获取。

    Level值:ALL/DEBUG/INFO/WARN/ERROR/FATAL/OFF

    Level 继承规则:如果一个logger没有定义Level,它的Level值将从它的父级(定义了Level)继承。

    日志纪录请求通过调用logger实例的输出方法实现。

    这些输出方法有Debug,Info,Warn,Error和Fatal。

    通过定义,输出方法决定了日志纪录请求的Level。

    例如,log是一个logger实例,那么语句log.Info(“..”)的日志纪录请求Level为INFO。 如果日志纪录请求的Level比logger本身定义(或继承)的Level高,则请求是可行的,否则不可行。

    简单规则:如果日志记录请求的Level为L,logger本身定义(或继承)Level为K,当L>=K时,日志纪录请求是可行的。

    Level级别:DEBUG <INFO<WARN<ERROR<FATAL

    通过名称,调用log4net.LogManager.GetLogger方法,可以获取同一个logger的实例引用。

    这样在配置了一个logger后,不用在代码中传递引用而可以获取同一个logger的引用了。

    与生物上的亲子关系(父亲总是先于孩子)基本相反,在log4net 里,logger可以被创建和配置成任何顺序。

    特别的是,一个父级logger可能比子级logger后实例化,但却可以在子级中查找到。

  • 相关阅读:
    Android 主题theme说明 摘记
    Android开发 去掉标题栏方法 摘记
    安卓项目五子棋代码详解(二)
    关于 ake sure class name exists, is public, and has an empty constructor that is public
    百度地图3.0实现图文并茂的覆盖物
    android onSaveInstanceState()及其配对方法。
    关于集成科大讯飞语音识别的 一个问题总结
    android 关于 webview 控制其它view的显示 以及更改view数据失败的问题总结
    C# 解析 json Newtonsoft果然强大,代码写的真好
    c#数据类型 与sql的对应关系 以及 取值范围
  • 原文地址:https://www.cnblogs.com/ismallboy/p/5612253.html
Copyright © 2011-2022 走看看