gpt4 book ai didi

c# - NLog - 删除早于 X 天的日志

转载 作者:太空狗 更新时间:2023-10-29 17:39:04 70 4
gpt4 key购买 nike

我如何删除日志早于 X 天的文件。这很简单,但我只有一天的日志在一个文件夹中。我的 NLog.config 看起来像:

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true">
<extensions>
<add assembly="NLog.Extended" />
</extensions>
<variable name="LogHome" value="PATH"/>
<variable name="DailyDir" value="${LogHome}${date:format=yyyy}/${date:format=MM}/${date:format=dd}/"/>
<targets>
<target name="asyncFile" xsi:type="AsyncWrapper">
<target
name="fatalLog"
xsi:type="File"
layout="${longdate}|${callsite}|${message}|${exception}"
fileName="${DailyDir}/Fatal.txt"
/>
</target>
<target name="asyncFile" xsi:type="AsyncWrapper">
<target
name="errorLog"
xsi:type="File"
layout="${longdate}|${callsite}|${message}|${exception}"
fileName="${DailyDir}/Error.txt"
/>
</target>
</targets>
<rules>
<logger name="*" level="Fatal" writeTo="fatalLog" />
<logger name="*" level="Error" writeTo="errorLog" />
</rules>
</nlog>

最佳答案

现在您正在包含日期的目录中创建日志。要使 NLog 能够自动管理您当前和旧的日志文件,您需要使用 NLog 归档功能。如 NLog 文件目标文档中所述 here您可以将属性 archiveFileNamemaxArchiveFiles 与每日日志一起使用,以便在 NLog 删除它们之前将日志文件保留 X 天。

您可能必须将所有存档日志保存在一个目录中,否则 NLog 将无法找到较旧的日志并将其删除。我会创建一个归档目录作为主日志目录的子目录,让 NLog 将所有归档日志放在那里,然后只使用 maxArchiveFiles 参数告诉 NLog 你想保留多少日志。

<targets>
<target name="asyncFile" xsi:type="AsyncWrapper">
<target
name="fatalLog"
xsi:type="File"
layout="${longdate}|${callsite}|${message}|${exception}"
fileName="${LogHome}/Fatal.txt"
archiveFileName="${LogHome}/Archive/Fatal-${shortdate}.txt"
maxArchiveFiles="5"
archiveEvery="Day"
/>
</target>
<target name="asyncFile" xsi:type="AsyncWrapper">
<target
name="errorLog"
xsi:type="File"
layout="${longdate}|${callsite}|${message}|${exception}"
fileName="${LogHome}/Error.txt"
archiveFileName="${LogHome}/Archive/Error-${shortdate}.txt"
maxArchiveFiles="5"
archiveEvery="Day"
/>
</target>
</targets>

这应该会为您提供两个包含当前日志的日志文件和一个包含过去 5 天每个目标的 5 个日志的存档目录。

关于c# - NLog - 删除早于 X 天的日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32068788/

70 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com