【问题标题】:nlog old archive files aren't deleted: archiveNumbering=Date,archiveOldFileOnStartup,maxArchiveFilesnlog 旧存档文件不会被删除:archiveNumbering=Date,archiveOldFileOnStartup,maxArchiveFiles
【发布时间】:2016-12-08 23:30:36
【问题描述】:

NLog 版本 4.3.6

此目标在日志目录中创建一个日志文件,格式为Trace_2016-08-03.log,该日志文件在启动时移动到名称类似于Trace_2016-08-03_11h33m32s_743ms.log 的存档目录,但不会删除旧的存档文件(maxArchiveFiles=2)。任何人都可以帮我解决这个问题。我不知道我做错了什么。

<target name="AsyncTrace" xsi:type="AsyncWrapper">
  <target name="TraceFile" xsi:type="File"
    layout="${time} ${level} ${message} ${exception:format=tostring}"
    fileName="${localLogHome}/Trace_${shortDate}.log" 
    archiveFileName="${localLogHome}/Archive/Trace_{#}.log"
    archiveNumbering="Date"
    archiveDateFormat="yyyy-MM-dd_HH\hmm\mss\s_fff\m\s"
    archiveOldFileOnStartup="true"
    maxArchiveFiles="2"
      />
</target>

感谢您的任何回答!

【问题讨论】:

标签: c# date archive nlog


【解决方案1】:

此配置存在 2 个问题。

  1. (普通日志文件的)文件名包含一个日期。 见https://github.com/NLog/NLog/issues/354

  2. 当archiveDateFormat 包含像我的示例中那样的转义字符时,存档无法识别现有存档文件,因此yyyy-MM-dd_HH\hmm\mss\s_fff\m\s 被转换为yyyy-MM-dd_HH.mm.ss

    <target name="AsyncTrace" xsi:type="AsyncWrapper">
        <target name="TraceFile" xsi:type="File"
            layout="${time} ${level} ${message} ${exception:format=tostring}"
            fileName="${localLogHome}/Trace.log" 
            archiveFileName="${localLogHome}/Archive/Trace_{#}.log"
            archiveNumbering="Date"
            archiveDateFormat="yyyy-MM-dd_HH.mm.ss"
            archiveOldFileOnStartup="true"
            maxArchiveFiles="1"
      />
    

【讨论】:

  • 我有同样的问题,但配置不同:
猜你喜欢
  • 2021-12-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-09
  • 1970-01-01
  • 1970-01-01
  • 2014-07-02
  • 1970-01-01
  • 2017-08-05
相关资源
最近更新 更多