Log4Net学习笔记1

Log4Net主页 http://logging.apache.org/log4net/index.html

Log4Net KPI http://logging.apache.org/log4net/release/sdk/

1、  信息记录到Access中

<appender name="ADONetAppender_Access" type="log4net.Appender.ADONetAppender">

        <bufferSize value="0"/>

        <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/Logs.mdb;Password=Jason"  />

//Data Source在这里必须写绝对地址;Password是数据库的访问密码;user没有写,默认是admin

        <commandText value="INSERT INTO [Logs]([Message]) VALUES (@message)" />

        <!---信息-->

        <parameter>…</parameter>

    </appender>

2、  信息记录到文件

    <appender  name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >

        <param name="File" type="txt" value="Error/" />       

        <param name="AppendToFile" value="true" />

        <param name="RollingStyle" value="Date" />

        <param name="maxSizeRollBackups" value="10" />

        <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

        <param name="DatePattern" value="yyyyMMdd'.txt'" />

        <param name="StaticLogFileName" value="false" />

        <Encoding value="UTF-8" />

        <layout type="ZHDMTSys.Log.ExpandLayout2.ReflectionLayout,ZHDMTSys.Log">

            <!--<param name="Header" value="&#13;&#10;" /><param name="Footer" value="%newline" />-->

            <param name="ConversionPattern"

     value="记录时间:%date 操作者ID:%property{UserName} 浏览器:%property{Browser} 操作系统:%property{MachineName}%n消息描述:%property{Message}%n 异常:%exception %n ------------------------------------------------------------------------------%n" />

        </layout>

</appender>

属性列表

  • File : 当StaticLogFileName为false时,此处标识的是文件夹路径(相对站点根目录),为true时,这里应该写入文本文件相对站点根目录的相对路径
  • AppendToFile : 是否追加到文本文件中,默认为true
  • RollingStyle : 文件名动态的依据,可选值有size 容量、date 日期、once 单个文件、composite混合模式
  • maxSizeRollBackups : 最大变换数量,-1为不限制。用于处理备份文件。表示备份文件的文件最大数目。如果设置为0,表示不备份日志文件,而且当日志文件容量满了之后,将会截断以前的日志信息;如果是自然数,那么当日志备份文件数目满了之后,会删除以前的日志文件备份;如果是负整数,那么将会无限制的增加日志备份文件。
  • lockingModel : 文件锁类型,RollingFileAppender本身不是线程安全的,如果在程序中没有进行线程安全的限制,可以在这里进行配置,确保写入时的安全。文件锁定的模式,官方文档上他有三个可选值“FileAppender.ExclusiveLock, FileAppender.MinimalLock and FileAppender.InterProcessLock”,默认是第一个值,排他锁定,一次值能有一个进程访问文件,close后另外一个进程才可以访问;第二个是最小锁定模式,允许多个进程可以同时写入一个文件;第三个目前还不知道有什么作用
  • DatePattern : 当rollingStyle为date时,此处可为文件名的生成提供依据
  • StaticLogFileName :是否为固定的文件名,理论上讲不会动态改变
  • Encoding :编码格式
  • SecurityContext : 比较少应用,对日志进行加密只类的,使用SecurityContextProvider转换。(对日志的保密要求比较高的时候应该可以应用上吧,Log4考虑的还挺周全)

备注:Log4net的配置信息中,属性可以有两种写法,比如<param name="AppendToFile" value="true" />

相当于<AppendToFile value="true" />

原文地址:https://www.cnblogs.com/smallidea/p/2573623.html