2016-11-16 4 views
2

В некоторых моих программах у меня есть 30-дневный поворот, как и ожидалось, с несколькими записями за несколько месяцев, но всего 30 файлов журнала. В других программах у меня есть только лог-файлы на один день, но все равно всего 30 файлов журналов. То, что я хочу иметь, - это всего лишь записи файла журнала за последние 30 дней с 30 файлами журнала. Наверное, я не знаю, чего мне не хватает.Конфигурация NLog Archive

Вчера один из моих файлов журналов был перезаписан, когда программа начала резервное копирование, поэтому я потерял данные, которые расскажут мне, что произошло. Тогда мой второй вопрос: архивирование просто удаляет файлы, которые не соответствуют шаблону, или фактически принимает файлы журнала и помещает их где-нибудь? Что такое архивирование? Вот мой 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> 

ответ

2

Это недостаток NLog, который плохо документирован.

Когда файлы должны быть удалены (например, файлы с максимальным архивом), файлы журнала и архивные файлы не могут находиться в одной папке.

Так один исправление этой конфигурации будет изменить archifeFilePath к

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

Смотрите также this issue on GitHub