我已经使用 NLog 多年,它对于高频进程的日常日志非常有效。
我现在有一个运行速度较慢的进程来记录所有错误,我希望文件每周或每月只滚动一次,这样我就可以更轻松地在一次读取中扫描所有数据。
我具体该如何配置?我尝试了 ArchiveEvery="Month" 但它只是每天都创建一个新文件。
这是当前文件 -
<targets>
<target xsi:type="File"
name="systemLogTarget"
archiveEvery="Month"
fileName="${basedir}/logs/${shortdate}.log"
layout="${longdate} - ${uppercase:${level}} - ${message} ${exception:format=stacktrace:separator=\r\n\t}" />
</targets>
<rules>
<logger minlevel="Debug"
writeTo="systemLogTarget" />
</rules>
Rolf Kristensen 的评论是正确的。
通过将
shortdate
放入文件名中,我创建了一个动态日志,该日志覆盖了 archiveEvery
属性。
我通过删除日志文件、给出命名方案并保留
archiveEvery="Month"
进行切换
<targets>
<target xsi:type="File"
name="systemLogTarget"
archiveEvery="Month"
fileName="${basedir}/logs/logfile.txt"
archiveFileName="${basedir}/logs/logfile.{###}.txt"
layout="${longdate} - ${uppercase:${level}} - ${message} ${exception:format=stacktrace:separator=\r\n\t}" />
</targets>