zoukankan      html  css  js  c++  java
  • 开源项目 13 Log4net

    原文:https://www.cnblogs.com/pudefu/p/9300697.html

    官方的api:

        http://logging.apache.org/log4net/release/sdk/index.html

        http://logging.apache.org/log4net/

    demo下载地址:

      https://files.cnblogs.com/files/guxingy/log4net%E7%AE%80%E5%8D%95%E6%B5%8B%E8%AF%95.rar

      环境:vs2019打开即可

    照着做基本没问题,另一个配置文件 格式要友好些

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <log4net>
        <!-- Debug 将日志以回滚文件的形式写到文件中 -->
        <appender name="RollingFileDebug" type="log4net.Appender.RollingFileAppender" >
          <!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
          <file value="App_Data/" />
          <!-- 日志文件的命名规则 -->
          <datePattern value="yyyy-MM-dd/'Debug.log'"/>
          <!-- 将日志信息追加到已有的日志文件中-->
          <appendToFile value="true" />
          <rollingStyle value="Size" />
          <maxSizeRollBackups value="100" />
          <maximumFileSize value="1MB" />
          <!-- 指定按日期切分日志文件 -->
          <rollingStyle value="Date"/>
          <!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
          <staticLogFileName value="false" />
          <!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->
          <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value=" &#13;&#10; &#13;&#10;【日志时间】: %d 【线程ID】: %thread &#13;&#10;【日志级别】: %-5p &#13;&#10;【日志对象】:%logger &#13;&#10;【日志内容】:%m &#13;&#10; " />
          </layout>
          <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="Debug" />
            <param name="LevelMax" value="Debug" />
          </filter>
        </appender>
    
        <!-- Info 将日志以回滚文件的形式写到文件中 -->
        <appender name="RollingFileInfo" type="log4net.Appender.RollingFileAppender" >
          <!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
          <file value="App_Data/" />
          <!-- 日志文件的命名规则 -->
          <datePattern value="yyyy-MM-dd/'Info.log'"/>
          <!-- 将日志信息追加到已有的日志文件中-->
          <appendToFile value="true" />
          <rollingStyle value="Size" />
          <maxSizeRollBackups value="100" />
          <maximumFileSize value="1MB" />
          <!-- 指定按日期切分日志文件 -->
          <rollingStyle value="Date"/>
          <!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
          <staticLogFileName value="false" />
          <!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->
          <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value=" &#13;&#10; &#13;&#10;【日志时间】:%d 【线程ID】:%thread &#13;&#10;【日志级别】:%-5p &#13;&#10;【日志对象】:%logger &#13;&#10;【日志内容】:%m &#13;&#10; " />
          </layout>
          <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="Info" />
            <param name="LevelMax" value="Info" />
          </filter>
        </appender>
    
        <!-- WARN 将日志以回滚文件的形式写到文件中 -->
        <appender name="RollingFileWarn" type="log4net.Appender.RollingFileAppender" >
          <!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
          <file value="App_Data/" />
          <!-- 日志文件的命名规则 -->
          <datePattern value="yyyy-MM-dd/'Warn.log'"/>
          <!-- 将日志信息追加到已有的日志文件中-->
          <appendToFile value="true" />
          <rollingStyle value="Size" />
          <maxSizeRollBackups value="100" />
          <maximumFileSize value="1MB" />
          <!-- 指定按日期切分日志文件 -->
          <rollingStyle value="Date"/>
          <!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
          <staticLogFileName value="false" />
          <!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->
          <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value=" &#13;&#10; &#13;&#10;【日志时间】:%d 【线程ID】:%thread &#13;&#10;【日志级别】:%-5p &#13;&#10;【日志对象】:%logger &#13;&#10;【日志内容】:%m &#13;&#10; " />
          </layout>
          <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="Warn" />
            <param name="LevelMax" value="Warn" />
          </filter>
        </appender>
    
        <!-- Error 将日志以回滚文件的形式写到文件中 -->
        <appender name="RollingFileError" type="log4net.Appender.RollingFileAppender" >
          <!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
          <file value="App_Data/" />
          <!-- 日志文件的命名规则 -->
          <datePattern value="yyyy-MM-dd/'Error.log'"/>
          <!-- 将日志信息追加到已有的日志文件中-->
          <appendToFile value="true" />
          <rollingStyle value="Size" />
          <maxSizeRollBackups value="100" />
          <maximumFileSize value="1MB" />
          <!-- 指定按日期切分日志文件 -->
          <rollingStyle value="Date"/>
          <!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
          <staticLogFileName value="false" />
          <!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->
          <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value=" &#13;&#10; &#13;&#10;【日志时间】:%d 【线程ID】:%thread &#13;&#10;【日志级别】:%-5p &#13;&#10;【日志对象】:%logger &#13;&#10;【日志内容】:%m &#13;&#10; " />
          </layout>
          <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="Error" />
            <param name="LevelMax" value="Error" />
          </filter>
        </appender>
    
        <!-- Fatal 将日志以回滚文件的形式写到文件中 -->
        <appender name="RollingFileFatal" type="log4net.Appender.RollingFileAppender" >
          <!-- 日志文件存放位置,可以为绝对路径也可以为相对路径 -->
          <file value="App_Data/" />
          <!-- 日志文件的命名规则 -->
          <datePattern value="yyyy-MM-dd/'Fatal.log'"/>
          <!-- 将日志信息追加到已有的日志文件中-->
          <appendToFile value="true" />
          <rollingStyle value="Size" />
          <maxSizeRollBackups value="100" />
          <maximumFileSize value="1MB" />
          <!-- 指定按日期切分日志文件 -->
          <rollingStyle value="Date"/>
          <!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
          <staticLogFileName value="false" />
          <!-- 最小锁定模式,以允许多个进程可以写入同一个文件 -->
          <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value=" &#13;&#10; &#13;&#10;【日志时间】:%d 【线程ID】:%thread &#13;&#10;【日志级别】:%-5p &#13;&#10;【日志对象】:%logger &#13;&#10;【日志内容】:%m &#13;&#10; " />
          </layout>
          <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="Fatal" />
            <param name="LevelMax" value="Fatal" />
          </filter>
        </appender>
    
        <root>
          <!--控制级别,由低到高:ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF
            比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录
            如果没有定义LEVEL的值,则缺省为DEBUG-->
          <appender-ref ref="RollingFileDebug" />
          <appender-ref ref="RollingFileInfo" />
          <appender-ref ref="RollingFileWarn" />
          <appender-ref ref="RollingFileError" />
          <appender-ref ref="RollingFileFatal" />
          <level value="DEBUG" />
        </root>
        <logger name="NHibernate">
          <level value="WARN" />
        </logger>
      </log4net>
    </configuration>

    效果如图:

    测试代码:

  • 相关阅读:
    ios js交互
    再次记录 cocoapods
    CABasicAnimation
    mysql授权
    很简单的代码,但是无法解释的错误
    4款开源免费的数据可视化JavaScript库
    【工具】获取窗口与控件信息
    从网易搬家来的49篇日志
    Git Extensions system.invalidoperationexception尚未提供文件名,因此无法启动进程
    哆啦A梦欺骗了你!浏览器CSS3测试遭质疑
  • 原文地址:https://www.cnblogs.com/guxingy/p/12066122.html
Copyright © 2011-2022 走看看