You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NLog使用archiveAboveSize按大小归档时同天归档覆盖问题咨询

问题解答

你提到的两种归档处理方案,在你使用的4.7.x版本以及NLog当前最新稳定版中均没有原生支持的配置项。目前可以通过以下两种方式解决压缩包内容覆盖的问题:

方案1:调整归档配置(无代码侵入,快速落地)

如果可以接受单日生成多个带有序号的归档压缩包,只需要修改配置文件中target节点的相关参数即可:

<target xsi:type="File" name="logTarget" 
    fileName="${fileDir}\debugLog_${shortdate}.log"
    layout="${longdate} ${level}: ${message}"
    archiveFileName="${fileDir}\debugLog_Archive_${shortdate}_{#}.zip"
    archiveAboveSize="${archiveAboveSize}"
    archiveNumbering="Sequence"
    archiveDateFormat="yyyyMMdd"
    maxArchiveFiles="${maxArchiveFiles}"
    enableArchiveFileCompression="True"
/>

调整后单日触发多次归档时,会依次生成debugLog_Archive_20210607_1.zip、debugLog_Archive_20210607_2.zip等多个压缩包,不会出现同名文件覆盖的问题。

方案2:自定义扩展FileTarget(满足单日单归档包需求)

如果必须要求单日所有日志存储在同一个归档压缩包中,需要自行扩展NLog的FileTarget逻辑:
继承NLog官方的FileTarget类,重写归档压缩的相关方法,在将日志文件写入压缩包前,先检测压缩包内是否存在同名文件:

  • 若存在则给新写入的文件名加上递增序号(如debugLog_2021-06-07.1.log)后再写入,即可实现你提到的第一种思路
  • 也可以读取原有文件内容和新日志内容合并后再写入压缩包,实现第二种思路

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 04:36:03