Nlog 无法将当天的最后一个文件识别为存档

Posted

技术标签:

【中文标题】Nlog 无法将当天的最后一个文件识别为存档【英文标题】:Nlog does not recognize last file of the day as archive 【发布时间】:2015-09-18 20:43:56 【问题描述】:

使用 nlog,我想每小时创建一个存档文件,并将存档文件保存一周。我正在使用 nlog 归档功能,archiveEvery 设置为“Hour”,maxArchiveFiles 设置为“168”。

<target xsi:type="File"
        name="fileLog"
        fileName="D:\EventLogs\Logs\MyLog_$shortdate.log"
        layout="$longdate $uppercase:$level $message"
        archiveFileName="D:\EventLogs\Logs\MyLog.#.log"
        archiveEvery="Hour"
        archiveNumbering="Date"
        archiveDateFormat="yyyyMMdd hh.mm"
        maxArchiveFiles="168"
        keepFileOpen="false"
        />

除了当天的最后一个文件没有被识别为存档之外,这有效,它只是保留其原始文件名并且永远不会被删除。为什么这只发生在当天的最后一个文件上?

【问题讨论】:

【参考方案1】:

我可以通过从文件名中删除 $shortdate 来解决此问题。我现在看到,当新的一天发生变化时,正在创建一个新文件,然后文件将被 nlog 存档。

<target xsi:type="File"
       name="fileLog"
       fileName="D:\EventLogs\Logs\MyLog.log"
       layout="$longdate $uppercase:$level $message"
       archiveFileName="D:\EventLogs\Logs\MyLog.#.log"
       archiveEvery="Hour"
       archiveNumbering="Date"
       archiveDateFormat="yyyyMMdd hh.mm"
       maxArchiveFiles="168"
       keepFileOpen="false"
       />

【讨论】:

谢谢你这已经结束了一个小时的挫折。

以上是关于Nlog 无法将当天的最后一个文件识别为存档的主要内容,如果未能解决你的问题,请参考以下文章

cocoapod ERROR tar:无法识别的存档格式

无法使用TimeBasedTriggeringPolicy存档log4j2中的最后一天日志文件

无法将存储容器中的文件移动到 Azure 中的存档存储

无法将 dSYM 文件复制到存档中

自动 7zip 任务 - “无法打开文件作为存档”

NLog 2.0.1 每日归档日志文件