You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

NLog归档文件保留原文件名日期后缀的配置方案咨询

解决NLog归档时保留原始日志日期的问题

嘿,我刚好碰到过类似的困扰!你的问题核心在于${shortdate}这个布局渲染器在归档触发时,会读取当前系统日期(也就是午夜后的新日期),而不是你想要的原始日志对应的日期。要解决这个问题,你需要用NLog专门为归档场景设计的${archive}布局渲染器,它会自动获取待归档日志文件对应的原始日期。

修改后的NLog Target配置

<target xsi:type="File" 
        name="tp" 
        fileName="C:\Log\Log${shortdate}.log" 
        archiveFileName="C:\Log\Log${archive:format=yyyy-MM-dd}.zip" 
        archiveEvery="Day" 
        maxArchiveFiles="365" 
        enableArchiveFileCompression="true">
</target>

关键变化说明

  • archiveFileName中的${shortdate}替换成${archive:format=yyyy-MM-dd}:这个渲染器会识别待归档日志的原始日期(比如你例子中的2019-10-18),而不是归档时刻的当前日期(2019-10-19)。这样归档后的压缩包就会是Log-2019-10-18.zip,完美保留原日志的日期部分。
  • 其他参数(archiveEvery="Day"maxArchiveFilesenableArchiveFileCompression)保持不变即可,它们的作用和之前一致:每日归档、保留最多365个归档文件、开启压缩。

额外验证小提示

如果你不确定配置是否生效,可以手动触发归档测试(比如修改系统日期到午夜后,或者通过NLog的API强制归档),检查生成的压缩包文件名是否符合预期。

内容的提问来源于stack exchange,提问作者Slevin

火山引擎 最新活动