.net - 更改 log4net 配置以每 x 小时创建一个新日志

标签 .net logging log4net

如果我想每 x 小时记录一次日志,我仍然不知道如何更改 log4net。我有这个:

      <log4net>
        <root>
          <level value="DEBUG"/>
          <appender-ref ref="LogFileAppender"/>
        </root>
        <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
          <param name="File" value="C:\log.txt"/>
          <param name="AppendToFile" value="true"/>
          <rollingStyle value="Size"/>
          <maxSizeRollBackups value="10"/>
          <maximumFileSize value="100MB"/>
          <staticLogFileName value="true"/>
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n"/>
          </layout>
        </appender>
  </log4net>

我有一个日志,我总是在这个 log.txt 中添加日志 - 现在我想说每天一个新的日志文件(24 小时),或者每 12 小时一个新的日志。我必须在我的配置中更改什么?对我的配置有什么建议吗?谢谢

最佳答案

回复:http://logging.apache.org/log4net/release/config-examples.html

此示例显示如何配置 RollingFileAppender 以在日期期间滚动日志文件。这个例子将每分钟滚动一次日志文件!要更改滚动周期,请调整 DatePattern 值。例如,“yyyyMMdd”的日期模式将每天滚动。见 System.Globalization.DateTimeFormatInfo获取可用模式列表。

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

在您的特定情况下,上面的示例带有 <datePattern value="yyyyMMdd-HH" />只允许您每小时记录一次。

但是,如果您想记录每个 X小时,您可以创建一个派生自 RollingFileAppender 的自定义 appender并覆盖 AdjustFileBeforeAppend将根据您的下一个计划的日志间隔日期检查当前时间的方法。见 Have a Log4Net RollingFileAppender set to roll weekly例如。

关于.net - 更改 log4net 配置以每 x 小时创建一个新日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12100624/

相关文章:

.net - 如何向绑定(bind)的组合框添加空值或自定义值?

c# - .NET 中的单例在所有 session 之间共享吗?

java - 以编程方式更改 log4j2 ROOT 记录器,添加 AppenderRef + ThreadContextMapFiler 值

c# - 在此模式下不允许 Log4net 递归读取锁定获取

c# - log4net 和每个线程唯一的日志文件

.net - 在 .NET 中以高速率发送 SMTP 电子邮件

c# - 在 MFC 与 C# 中对字符串进行排序

java - 使用 play 框架登录多个文件

python - Flask Python 日志记录 : TypeError while logging file path in File

c# - 如何在创建日志文件之前初始化log4net?