如何配置Nlog在一个月后删除日志文件?

时间:2021-02-22 01:59:27

标签: c# asp.net asp.net-core logging nlog

一个月后的日志文件需要删除。

以下是我的 Nlog.config 文件中的配置:

<target name="file" xsi:type="File" fileName="logs\${date:format=yyyy_MM}\${date:format=dd}.log" 
    layout="..." 
    
    archiveFileName="logs\archive\log.{#}.txt" <!-- actually I don't want to rename or move it -->
    archiveEvery="Month"
    maxArchiveFiles="1"
/>

我怎样才能让它工作?

1 个答案:

答案 0 :(得分:1)

NLog 支持两种归档模式,但一种不应混合使用:

  • 动态文件名存档逻辑 - 使用 fileName="${shortdate}.log" 启用。这意味着它会因为布局渲染器逻辑而动态滚动/存档。

  • 静态文件名存档逻辑 - 使用 archiveEvery="Month"archiveFileName="..." 启用。这意味着它将期望 FileName 是静态的(例如 fileName="app.log")。

NLog 目前不支持子文件夹的归档清理,所以我建议这样做:

<target name="file" xsi:type="File" fileName="logs\${date:format=yyyy_MM_dd}.log" maxArchiveDays="31" />

替代设置每周运行一次的计划任务,执行清理旧文件,并删除空子文件夹。

相关问题