一、前言

在上一篇文章【(转载)非常完善的Log4net配置详细说明】介绍了Log4Net的配置说明,如果不知道的可以去看看,这里我们就介绍一下日志记录的实现,说得都比较基础,所以大神请绕过。

二、Log4Net实现

前面介绍了了Log4Net的配置,这里我在把我用的额Log4Net 的配置信息展示出来

<log4net debug="false">
    <root>
      <level value="ALL" />
    </root>

    <logger name="PFTLog">
      <level value="DEBUG"/>
      <appender-ref ref="ErrorRollingFileAppender" />
      <appender-ref ref="DebugRollingFileAppender" />
      <appender-ref ref="InfoRollingFileAppender" />
    </logger>

    <!--数据日志-->
    <appender name="InfoRollingFileAppender" type="log4net.Appender.RollingFileAppender" >
      <file value="LogFile\Info\" />
      <appendToFile value="true" />
      <!--记录日志写入文件时,不锁定文本文件,防止多线程时不能写Log,官方说线程非安全-->
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <Encoding value="UTF-8" />
      <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
      <MaxSizeRollBackups value="20" />
      <!--是否只写到一个文件中-->
      <StaticLogFileName value="false" />
      <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
      <rollingStyle value="Composite" />
      <!--按日期产生文件夹和文件名[在日期方式与混合方式下使用]-->
      <!--这是按日期产生文件夹,并在文件名前也加上日期-->
      <datePattern value="yyyyMMdd-&quot;-Info.log&quot;" />
      <!--每个文件的大小。
      只在混合方式与文件大小方式下使用。
      超出大小后在所有文件名后自动增加正整数重新命名,数字最大的最早写入。可用的单位:KB|MB|GB。
      不要使用小数,否则会一直写入当前日志-->
      <maximumFileSize value="1MB" />
      <!--计数类型为1,2,3…-->
      <!--<CountDirection value="1" />-->
      <!--记录的格式。一般用log4net.Layout.PatternLayout布局-->
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%n记录时间:%date %n线程ID[%thread]
                           %n日志级别:%-5level %n记录类:%logger %n扩展信息:%property
                           -%n异常:%exception %n错误描述:%message%newline" />
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="INFO" />
        <param name="LevelMax" value="INFO" />
      </filter>
    </appender>

    <!--错误日志-->
    <appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender" >
      <file value="LogFile\Error\" />
      <appendToFile value="true" />
      <!--记录日志写入文件时,不锁定文本文件,防止多线程时不能写Log,官方说线程非安全-->
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <Encoding value="UTF-8" />
      <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
      <MaxSizeRollBackups value="20" />
      <!--是否只写到一个文件中-->
      <StaticLogFileName value="false" />
      <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
      <rollingStyle value="Composite" />
      <!--按日期产生文件夹和文件名[在日期方式与混合方式下使用]-->
      <!--这是按日期产生文件夹,并在文件名前也加上日期-->
      <datePattern value="yyyyMMdd&quot;-Error.log&quot;" />
      <!--每个文件的大小。
      只在混合方式与文件大小方式下使用。
      超出大小后在所有文件名后自动增加正整数重新命名,数字最大的最早写入。可用的单位:KB|MB|GB。
      不要使用小数,否则会一直写入当前日志-->
      <maximumFileSize value="1MB" />
      <!--计数类型为1,2,3…-->
      <!--<CountDirection value="1" />-->
      <!--记录的格式。一般用log4net.Layout.PatternLayout布局-->
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%n记录时间:%date %n线程ID[%thread]
                           %n日志级别:%-5level %n记录类:%logger %n扩展信息:%property
                           -%n异常:%exception %n错误描述:%message%newline" />
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="ERROR" />
        <param name="LevelMax" value="ERROR" />
      </filter>
    </appender>

    <!--调试日志-->
    <appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender" >
      <file value="LogFile\Debug\" />
      <appendToFile value="true" />
      <!--记录日志写入文件时,不锁定文本文件,防止多线程时不能写Log,官方说线程非安全-->
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <Encoding value="UTF-8" />
      <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
      <MaxSizeRollBackups value="20" />
      <!--是否只写到一个文件中-->
      <StaticLogFileName value="false" />
      <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
      <rollingStyle value="Composite" />
      <!--按日期产生文件夹和文件名[在日期方式与混合方式下使用]-->
      <!--这是按日期产生文件夹,并在文件名前也加上日期-->
      <datePattern value="yyyyMMdd&quot;-Debug.log&quot;" />
      <!--每个文件的大小。
      只在混合方式与文件大小方式下使用。
      超出大小后在所有文件名后自动增加正整数重新命名,数字最大的最早写入。可用的单位:KB|MB|GB。
      不要使用小数,否则会一直写入当前日志-->
      <maximumFileSize value="1MB" />
      <!--计数类型为1,2,3…-->
      <!--<CountDirection value="1" />-->
      <!--记录的格式。一般用log4net.Layout.PatternLayout布局-->
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%n记录时间:%date %n线程ID[%thread]
                           %n日志级别:%-5level %n记录类:%logger %n扩展信息:%property
                           -%n异常:%exception %n错误描述:%message%newline" />
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="DEBUG" />
        <param name="LevelMax" value="DEBUG" />
      </filter>
    </appender>

  </log4net>
View Code

相关文章: