log4net以日期作为文件夹名生成log

将日志分日期记录相信是很多系统都这么做的,因为查找起来十分方便。而根据log4net说明文档,可以这么配置

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="logfile" />
    <appendToFile value="true" />
    <rollingStyle value="Composite" />
    <datePattern value="yyyyMMdd" />
    <maxSizeRollBackups value="10" />
    <maximumFileSize value="1MB" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    </layout>
</appender>

这样就会在运行目录下的生成“logfile20120906”这样类似的文件。不过这样看起来也不是太方便,我们希望将log记录在专门的一个log文件夹下。其实很简单,只需要将<file value="logfile" />修改为<file value="logfile/" />

这样log就会生成在运行目录下的logfile文件夹下,且log名称为20120906.可是每天的log都会生成到这个文件夹下,时间久了,依然不好查找。最好是能够每天生成一个文件夹。

很明显,修改file这个节点已经不管用了,因为这个节点只能配置固定路径。根据日期变化的内容可知,datePattern是可变的,但是怎样让他变成文件夹呢?同样加一个分隔符“/”试试?结果果然有效。

于是变成了<datePattern value="yyyyMMdd/'log.log'" /> 这样就生成的log就会在logfile文件夹下的20120906文件夹下生成log.log文件。就能很方便的查找了。

附上完整配置:

<configSections>
  <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
 
<log4net>
  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="log\"/>
    <appendToFile value="true"/>
    <maxSizeRollBackups value="10"/>
    <maximumFileSize value="1MB"/>
    <rollingStyle value="Date"/>
    <datePattern value='yyyy-MM-dd/"yourlogname.log"' />
    <staticLogFileName value="false"/>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date %-5level %logger - %message%newline"/>
    </layout>
  </appender>
  <root>
    <level value="DEBUG"/>
    <appender-ref ref="RollingLogFileAppender"/>
  </root>
</log4net>

这个是基于滚动文件的,其他模式请参考http://logging.apache.org/log4net/release/config-examples.html

另外datePattern中的文件分割符号只能是"/",file中的可为"/"或"\"


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值