如何配置 NLog 以每周或每月仅创建一次新日志文件?

问题描述 投票:0回答:1

我已经使用 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>
nlog
1个回答
0
投票

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>
© www.soinside.com 2019 - 2024. All rights reserved.