n日志旧存档文件不会被删除:archiveNumbering =日期,archiveOldFileOnStartup,maxArchiveFiles

问题描述:

NLOG版本4.3.6n日志旧存档文件不会被删除:archiveNumbering =日期,archiveOldFileOnStartup,maxArchiveFiles

这一目标创造了以下列格式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> 

谢谢任何​​答案!

+1

尝试escapechars看到GitHub上这个问题:https://github.com/NLog/NLog/issues/309。这是旧的,但也许这个问题尚未解决。 –

+0

@IgorDamiani应该解决这个问题。如果你看看https://github.com/NLog/NLog/issues/643 – FreeG

这个配置有两个问题。

  1. fileName(正常logFile的)包含日期。 看到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" 
        />