• 如何使用 log4net 以日期为文件名输出


    最近在研究log4net的使用,发现大多数资料都只告诉我们一些简单的应用,没有详细的使用教程,很多很常用的功能都没有相关资料。

    比如:我想使用RollingFileAppender以日期为日志文件名,网上提供最多的做法就是:

    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">   
      <file value="Logs/" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <datePattern value="yyyy-MM-dd&quot;.log&quot;" />
      <maxSizeToRollBackups value="10" />
      <maximumFileSize value="3000kb" />
      <staticLogFileName value="false" />
      <layout type="log4net.Layout.PatternLayout,log4net">
            <param name="ConversionPattern" value="%d [%t] %-5p %c [%L] - %m%n" />
       </layout>
    </appender>

    配置后可以日期名输出文件名,但是也会生成重复日期的文件名,比如:2012-03-20.log,也会生成2012-03-20.log2012-03-20.log, 并且不能写入的日志内容,这样的结果肯定不是我们想要的。

    后来又继续研究源码查找资料,才发现要达到这样的目的,其实很简单,只需要将上面 的file配置项按下面这样配置就好了:

    <file type="log4net.Util.PatternString" value="Logs/%date{yyyy-MM-dd}.log" />

    其中 %date 是 log4net.Util.PatternString 里约定的日期输出,{yyyy-MM-dd} 就是我们熟悉的日期格式输出了

    当然<staticLogFileName value="true" />按默认配置就好了,完整的配置如下:

    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
      <file type="log4net.Util.PatternString" value="Logs/%date{yyyy-MM-dd}.log" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <datePattern value="yyyy-MM-dd" />
      <maxSizeToRollBackups value="10" />
      <maximumFileSize value="3000kb" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout,log4net">
            <param name="ConversionPattern" value="%d [%t] %-5p %c [%L] - %m%n" />
       </layout>
    </appender>

    然后再根据 《如何使用 log4net 日志框架》,启动应用程序看看,是不是已经是日期作为日志文件名输出了!

    文章出处:http://www.ruyhouse.com/Article/37

  • 相关阅读:
    P3121 [USACO15FEB]审查(黄金)Censoring (Gold)
    P3389 【模板】高斯消元法
    P2260 [清华集训2012]模积和
    【Codevs1237&网络流24题】餐巾计划(费用流)
    【POJ3680】Intervals(费用流)
    【BZOJ1070】修车(费用流)
    【BZOJ1834】network 网络扩容(最大流,费用流)
    【POJ1149&BZOJ1280】PIGS(最大流)
    【BZOJ2127】happiness(最小割)
    【BZOJ3894】文理分科(最小割)
  • 原文地址:https://www.cnblogs.com/yangchuncool/p/4071106.html
Copyright © 2020-2023  润新知