如何使用 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>

 

转载于:https://www.cnblogs.com/dc-lancer/archive/2013/05/06/3062351.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值