【问题标题】:Maximum Filesize of LogFileAppender in Log4NetLog4Net 中日志文件追加器的最大文件大小
【发布时间】:2009-03-13 02:12:46
【问题描述】:

我现在使用 Log4net 有一段时间了,它是一个了不起的日志框架,尤其是在连接到 Castle.Windsor 时。不过……

我通常使用滚动文件追加器,但这导致日志文件过多,而不是我实际想要的,因此,对于我的最新项目,改为使用基本的 LogFileAppender,但问题是日志文件不断增长(似乎永远)。

如何告诉附加程序不要超过固定大小(并开始删除旧日志并将新日志附加到文件中?

我当前的配置如下:

<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
  <file value="E:\Logs\iWater\Schedule-Dispatch-API.log"/>
  <param name="AppendToFile" value="true"/>
  <maximumFileSize value="2048KB"/>
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%-16date{dd MMM HH:mm:ss} %-7level %-25.35logger{1} %message%newline"/>
  </layout>
</appender>

似乎 maximumFileSize 属性没有得到尊重。有什么解决办法吗?

或者,如何将滚动文件附加程序配置为仅创建 1 个文件(曾经)?

【问题讨论】:

    标签: .net log4net


    【解决方案1】:

    FileAppender 类没有 MaxFileSize/MaximumFileSize 属性。只有使用 RollingFileAppender 才能获得这些。这是一个示例,它将您的文件限制为固定的最大大小,没有备份(将 maxSizeRollBackups 设置为 0)。请注意,当文件达到其最大大小时,它会截断(基本上会删除所有现有的日志记录并重新开始):

    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
        <file value="log.txt" />
        <appendToFile value="true" />
        <rollingStyle value="Size" />
        <maxSizeRollBackups value="0" />
        <maximumFileSize value="10MB" />
        <staticLogFileName value="true" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
        </layout>
    </appender>
    

    【讨论】:

    • 为避免完全截断并仍然解决报告的日志文件过多的问题,我建议将 maxSizeRollBackups 设置为较低的数字,例如2,并可能相应地减小 maximumFileSize(对于 2,除以 3)。这样,在截断之后,您仍然有三分之二的最新日志消息可用,而不是没有。
    【解决方案2】:

    LogFileAppender 不支持限制输出文件的大小(至少在我能找到的参考资料中)。要限制文件大小,请使用 RollingFileAppender 并滚动 Size 并设置文件大小限制。

    要限制翻转文件的数量,请使用MaxSizeRollBackups 属性

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-19
      • 2016-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多