我对Nlog.config有疑问。我无法删除旧的日志文件
这是我首先尝试使用此NLog.config:
<target name="asyncFileError" xsi:type="AsyncWrapper">
<target name="file" xsi:type="File"
layout="${date:format=dd/MM/yyyy HH\:mm\:ss.mmm} ${level} ${logger} ${message} - ${exception:format=tostring} [${callsite}]"
fileName="${specialfolder:folder=ApplicationData}/xyz/Logs/${shortdate}/LogFile.log"
encoding="UTF-8"
createDirs="true" />
</target>
这会在当前日期的文件夹中保存每日日志(并将其展开)。 e.g:
Logs
->2018-06-05
-> LogFile.log
->2018-06-06
-> LogFile.log
->2018-06-07
-> LogFile.log
->2018-06-08
-> LogFile.log
我现在想要NLog,清理Logs文件夹,这样只保留过去三天的文件夹和日志。
因此,我阅读了NLog文档并找到了堆栈溢出的解决方案(我已经尝试过),它将日志文件复制到存档目录。但这实际上并不是我想到的。
我想保留我的文件夹结构,只想删除NLog的旧日志。 有没有办法,我可以强制NLog丢弃超过x天的日志?
作为一个例子,我希望NLog像这样清理2018-06-09上的Log-folder
Logs
->2018-06-07
-> LogFile.log
->2018-06-08
-> LogFile.log
->2018-06-09
-> LogFile.log
...这意味着在2018-06-09这些文件夹和日志都消失了:
->2018-06-05
-> LogFile.log
->2018-06-06
-> LogFile.log
我们目前正在使用NLog 4.4.12。
提前感谢任何想法和提示。
此致 莫里斯
编辑: 放弃日期文件夹并使用日期重命名日志文件没有问题。所以如果这有助于找到解决方案。
答案 0 :(得分:2)
好像我没有子文件夹就可以工作:
<target name="asyncFileError" xsi:type="AsyncWrapper">
<target name="file" xsi:type="File"
layout="${date:format=dd/MM/yyyy HH\:mm\:ss.mmm} ${level} ${logger} ${message} - ${exception:format=tostring} [${callsite}]"
fileName="${specialfolder:folder=ApplicationData}/xyz/Logs/LogFile.log"
archiveFileName="${specialfolder:folder=ApplicationData}/xyz/Logs/Archive/Log.{#####}.log"
archiveAboveSize="10024000"
archiveNumbering="Sequence"
maxArchiveFiles="10"
archiveEvery="Day"
encoding="UTF-8"
createDirs="true" />
</target>
这会每天或如果日志文件超过10024000字节,则将日志文件移至存档。并且存档保留了最后10个文件(如果客户愿意,也许客户应该修改最大文件数)。
我在文件名中丢失了日期,但是,您仍然可以在文件系统中看到更改的日期,或者打开日志以查看日志日期。我认为您必须在这场比赛中输掉一些东西:P。
Thx @Rolf Kristensen