首页 > 解决方案 > NLog:将名称中包含日期的日志文件保留 x 天

问题描述

我想要一个简单的 NLog 日志文件方案:使用名称中的当前日期创建日志文件,然后保留 31 天的日志文件。

所以像:

2020-11-23.log  <-- Today's date
2020-11-22.log
...
2020-10-24.log
2020-10-23.log  <-- Remove this one as being over 31 days old

这可能吗?

我从阅读文档和各种博客中得到的印象是,对实时日志文件和存档日志文件使用相同的命名方案可能会出现问题。另外,我可能需要将存档的日志文件放在另一个文件夹中(尽管所有提到的博客都超过四年了,所以我不知道是否仍然如此)。但是,文档似乎不是很详细,我不确定我所阅读的博客文章的最新情况。

标签: .netnlog

解决方案


您可以在 NLog 4.5 中执行此操作:

<target name="file" xsi:type="File"
        fileName="${basedir}/logs/App.${shortdate}.txt" 
        maxArchiveFiles="31" />

它应该可以正常工作,除非您开始使用archiveFileName=.

NLog 4.7 引入了设置maxArchiveDays=以帮助使用archiveAboveSize=.

如果您想将静态文件名与 一起使用archiveFileName=,那么这里有一些示例:https ://github.com/NLog/NLog/wiki/FileTarget-Archive-Examples


推荐阅读