log4net 文件日志缓存(buffersize)

2 篇文章 0 订阅
2 篇文章 0 订阅

        公司用log4net记录日志,文件的形式,后面想记录的东西越来越多。发现会出现文件被占用的情况。就想log4net应该有缓存,当要写入的文件达到一定数量的时候再写入。然后在网上查了很多,发现几乎没有写文件日志用缓存的,都是数据库缓存到一定条数在写入。

 

        经过一天的测试终于成功了。下面是部分代码和配置

<log4net debug="true">

    <appender name="BufferingForwardingAppender" type="log4net.Appender.BufferingForwardingAppender" >

    <bufferSize value="10"/><!--次数-->

    <appender-ref ref="RollingLogFileAppender" />

</appender>

    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">

      <file value="applicationLog.log" />

      <appendToFile value="true" />

      <rollingStyle value="Size" />

      <maxSizeRollBackups value="10" />

      <maximumFileSize value="2MB" />

      <staticLogFileName value="true" />

      <layout type="log4net.Layout.PatternLayout">

        <conversionPattern value="[%date]  %thread -- %-5level -- %logger [%M] -- %message%newline" />

      </layout>

    </appender>

    <root>

      <level value="DEBUG" />

      <appender-ref ref="BufferingForwardingAppender" />

      <!--这里不能有此节点<appender-ref ref="RollingLogFileAppender" />-->

    </root>

  </log4net>

 

        然后代码中这样写

        log4net.ILog log = log4net.LogManager.GetLogger("BufferingForwardingAppender");

        log.Info(“日志”);

        注意配置节点的顺序root→BufferingForwardingAppender→BufferingForwardingAppender→RollingLogFileAppender。root配置中不能出现<appender-ref ref="RollingLogFileAppender" />。再有bufferSize 的值不是大小,而是记录日志的次数,我配置的10,到第十一次的时候就会写入文件。

 

        查网页不管是官网还是博客都说了BufferingForwardingAppender的用法,这里就不多说了。

        但是自己测试的时候一开始没有测试出来,可能是我一开始把buffersize的value值当成是大小而不是次数,导致测试的时候还以为是自己配置有问题呢。

 

        因为第一次接触,原理还不是很懂,但是查了很多写文件日志缓存的办法都没找到,所以发到这里希望对大家有用。

 

        最后不要忘了配置log4net.config的路径,系统启动的时候:log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(Server.MapPath("~") + @"\log4net.config"));  或者项目的AssemblyInfo.cs中[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]

 

 

2017-01-01于网易博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值