【问题标题】:How to config Nlog to delete log file after a month?如何配置 Nlog 一个月后删除日志文件?
【发布时间】:2021-05-24 07:21:24
【问题描述】:

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

以下是我的 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"
/>

我怎样才能让它工作?

【问题讨论】:

  • 来自File target,不能删除指定的过期文件。但是通过这两个参数(maxArchiveFiles,archiveEvery)可以定时删除超过一定容量的日志文件。

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


【解决方案1】:

NLog 支持两种归档模式,但其中一种是should not be mixing

  • 动态文件名存档逻辑 - 使用 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" />

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

【讨论】:

    猜你喜欢
    • 2023-03-27
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多