.net - Log4Net 中日志文件 Appender 的最大文件大小

标签 .net log4net

我现在使用 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>

看起来最大文件大小属性没有被尊重。有什么解决办法吗?

或者,如何配置滚动​​文件追加器以仅创建 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>

关于.net - Log4Net 中日志文件 Appender 的最大文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/641226/

相关文章:

log4net - 带有 Log4Net 的语义日志记录应用程序 block ?

logging - 登录 Umbraco 的最佳实践是什么?

c# - C#使用log4net出错时发送邮件

c# - RequiredFieldValidator 验证禁用的文本框

database - log4net:如何在数据库中存储数据

asp.net - asp.net中Literal控件的Mode属性

.net - 将 IDisposable 作为参数传递

c# - Log4net - 使用继承时的最佳策略

c# - MarshalByRefType

.net - 使用最新的 Xamarin Studio,构建错误说明 "Can' t find .NetPortable”框架