NLog存档配置

时间:2016-11-16 15:49:14

标签: nlog

在我的一些程序中,我有30天的预期轮换,有几个月的多个条目,但只有30个日志文件。在其他程序中,我只有一天的日志文件,但总共只有30个日志文件。我想要的只是过去30天的日志文件条目,包含30个日志文件。我想我不知道我错过了什么。

昨天我的一个日志文件在程序启动时被覆盖了,所以我丢失了可以告诉我发生了什么的数据。然后我的第二个问题是,归档只是删除不适合该模式的文件,还是实际上将日志文件放在某处?什么是归档?这是我的nlog.config:

<?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">

  <!-- 
  See https://github.com/nlog/nlog/wiki/Configuration-file 
  for information on customizing logging rules and outputs.
   -->
  <variable name="LogDir" value="${specialfolder:folder=MyDocuments}/MyApp/Log"/>
  <variable name="LogDay" value="${date:format=dd}"/>
  <targets async="true">
    <!-- add your targets here -->
    <target name="LogTarget1"
            xsi:type="File"
            fileName="${LogDay}.log"
            encoding="utf-8"
            maxArchiveFiles="30"
            archiveNumbering="Sequence"
            archiveAboveSize="52428800"
            archiveFileName="${LogDay}.{#######}.log"
            layout="${date:format=MM/dd/yyyy HH\:mm\:ss}|${level:uppercase=true}|${message}" />

  </targets>

  <rules>
    <!-- add your logging rules here -->   
    <logger name="*" minlevel="Trace" writeTo="LogTarget1" />

  </rules>
</nlog>

1 个答案:

答案 0 :(得分:2)

这是NLog的一个缺点,没有很好的记录。

如果要删除文件(例如max archives files),则日志文件和存档文件不能位于同一文件夹中。

因此,对此配置的一个修复是将archifeFilePath更改为

archiveFileName="archive/${LogDay}.{#######}.log"

另见this issue on GitHub