NLog设置没有删除MaxArchiveDays或MaxArchiveFiles?

问题描述 投票:0回答:1

我有下面的 NLog 配置文件,它被设置为每天存档,最初我只有 MaxArchiveFiles。它被设置为每天存档,最初我只有MaxArchiveFiles。现在我想只保留X天的存档文件,并发现信息说MaxArchiveDays在v4.7及以上版本中可用。所以,我升级到v4.7,但现在它似乎没有归档天数或文件数量。

有人看到这个配置文件在NLog v4.7中有什么问题吗?

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      autoReload="true" 
      throwExceptions="true">

  <variable name="LogDirectory" value="D:/Logs/HRImport"/>

  <targets async="true">

    <target name="DefaultTarget"
      xsi:type="File"
      fileName="${LogDirectory}/LogFile.log"
      encoding="utf-8"
      layout="${longdate} | ${callsite} | ${message}"
      archiveFileName="${LogDirectory}/Archive/${shortdate}_log.{#}.log"
      archiveAboveSize="3145728"   
      archiveEvery="Day"
      archiveNumbering="Rolling"
      maxArchiveFiles="3"
      maxArchiveDays="2"
    />
    <!--1 meg: 1048576 -->

    <target name="ConsoleTarget"
      xsi:type="Console"
      layout="${longdate} ${logger:shortName=True} ${message}${onexception:EXCEPTION OCCURRED\:${exception:format=type,message,StackTrace,method:maxInnerExceptionLevel=8:innerFormat=type,message,StackTrace,method}}"
    />

  </targets>

  <rules>
    <logger name="defaultLogger" minlevel="Debug" writeTo="DefaultTarget,ConsoleTarget" />
  </rules>
</nlog>

** 更新 **

<target name="DefaultTarget"
      xsi:type="File"
      fileName="${LogDirectory}/LogFile.log"
      encoding="utf-8"
      layout="${longdate} | ${callsite} | ${message}"
      archiveFileName="${LogDirectory}/Archive/{#}_log.log"
      archiveNumbering="DateAndSequence"
      archiveAboveSize="3145728"   
      archiveEvery="Day"
      maxArchiveFiles="3"
      maxArchiveDays="2"
    />
c# nlog
1个回答
2
投票

问题是使用 ${shortdate}:

archiveFileName="${LogDirectory}/Archive/${shortdate}_log.{#}.log"
archiveNumbering="Rolling"

当使用Layout在 archiveFileName 那么它一定是非常静态的。只有 {#} 应该包含动态部分。

相反,可以试试这个。

archiveFileName="${LogDirectory}/Archive/{#}_log.log"
archiveNumbering="DateAndSequence"

也请参见: https:/github.comNLogNLogwikiFileTarget-Archive-Examples。

© www.soinside.com 2019 - 2024. All rights reserved.