zoukankan      html  css  js  c++  java
  • 也用 Log4Net 之将自定义属性记录到文件中 (三) jerry

     

    也用 Log4Net  之将自定义属性记录到文件中 (三)

     

      即解决了将自定义属性记录到数据库之后。一个新的想法冒了出来,自定义属性同样也能记录到文件中吗?答案是肯定的,因为Log4Net既然已经考虑到了数据库记录方式,当然也一定考虑到了其它的记录方式。but how,how,how(这句话来源于电影功夫熊猫)。接下来让我们看看如何将自定义属性记录到文件中。

     

      上菜之前我先做个小补充,首先我们用到的消息载体依然是LogMessage,LogMessage类的代码可以查看"也用 Log4Net  之将日志记录到数据库的配置 (一)"。自定义属性的名称依然是UserID,当然,你可以输出更多自定义属性,自已加就成了。对应该的后台代码依然是我的上一篇文章 "也用 Log4Net 之将日志记录到数据库的后台实现 (二)"。是不是很好,同样的代码可以支持多种日志输出方式,这便是Log4Net的优势之一。

     

      好了,上菜:

     

        <logger name="MisTxtLogger">
          <level value="ALL"/>
          <appender-ref ref="MisTxtFile" />
        </logger>

     

        <!--Txt记录形式-->
        <!--信息日志配置-->
        <appender name="MisTxtFile" type="log4net.Appender.RollingFileAppender">
          <param name="File" value="D:\\MisLog\\" />
          <param name="AppendToFile" value="true" />
          <param name="MaxFileSize" value="10240" />
          <param name="MaxSizeRollBackups" value="100" />
          <param name="StaticLogFileName" value="false" />
          <param name="DatePattern" value="yyyyMMdd" />
          <param name="RollingStyle" value="Date" />
          
          <!--自定义成员 -->
          <parameter>
            <parameterName value="@UserID" />
            <dbType value="Int32" />
    
            <layout type="JJ.Data.LogCommon.CustomLayout">
              <conversionPattern value="%UserID"  />
            </layout>
    
          </parameter>
          
    
    <layout type="JJ.Data.LogCommon.CustomLayout"> <param name="ConversionPattern" value="%n日志时间:%d [%t] %n日志级别:%-5p %n日 志 类:%c %n%m %n消息描述:%UserID%n" /> </layout>
    </appender>

      

      在后台代码中:把加载的配置节点名称改成"MisTxtLogger",就可以应用文本输出的配置了。

        _log = log4net.LogManager.GetLogger("MisTxtLogger"); 

      

      这就是文件记录形式的配置,你记得把他放到配置文件中的 <log4net></log4net>中就可以了。重点来看以下配置,是从上面的配置中截出来的,为了说明方便。

          <!--自定义成员 -->
          <parameter>
            <parameterName value="@UserID" />
            <dbType value="Int32" />
    
            <layout type="JJ.Data.LogCommon.CustomLayout">
              <conversionPattern value="%UserID"  />
            </layout>
    
          </parameter>
          
          <layout type="JJ.Data.LogCommon.CustomLayout">
             <param name="ConversionPattern" value="%n日志时间:%d [%t] %n日志级别:%-5p %n日 志 类:%c %n%m %n消息描述:%UserID%n" />
          </layout>

      

      在文本记录形式中,依然要先对自定义属性进行处理,看代码中的“UserID”就是本例中的自定义属性,然后再看它的输入方式:

         <layout type="JJ.Data.LogCommon.CustomLayout">
            <param name="ConversionPattern" value="%n日志时间:%d [%t] %n日志级别:%-5p %n日 志 类:%c %n%m %n消息描述:%UserID%n" />
         </layout>

      

      消息描述:%UserID,在Log4Net中,%UserID所代表的就是自定义属性的值,当然,%n是换行,%m就等同于%message,即消息内容,其它的%元素 我就不一一讲将解了。可以在网上找到详细资料。

    好了,按照上面的配置,现在自定义属性也可以输出到文件中了,是不是很简单。

       重点强讲一下:配置的时候一定要小心,因为很多时候日志无法正常输出的原因不是因为代码的问题,而往往是因为配置中的小错误导致的,所以我一直认为Log4Net配置是件可怕的事,一不小心配错了,就无法正常记录日志了。不过它的配置还算是很清晰易懂的。大家刚开始看不懂的时候千万别急。资料看一下,Layout , appendar 等等配置节的含义,然后再去阅读Log4Net的配置文件,你会有种豁然开朗的感觉。

       好了,就写的这里,我是百灵。

  • 相关阅读:
    php经典笔试题
    linux初探+ubuntu配置淘宝appkey环境总结mongo+redis
    ubuntu 设置与添加中国源
    .htaccess 的配置规则 + 无法使用原因
    HTML.CSS 要点记录
    十个必备的.NET开发小工具(2):Regulator
    十个必备的.NET开发小工具(3):CodeSmith
    十个必备的.NET开发小工具(8):NAnt
    十个必备的.NET开发小工具(1):Snippet Compiler
    Javascript书籍
  • 原文地址:https://www.cnblogs.com/mbailing/p/Log4Net.html
Copyright © 2011-2022 走看看