Максимальный размер файла LogFileAppender в Log4Net - PullRequest
32 голосов
/ 13 марта 2009

Я использую Log4net уже некоторое время, и это потрясающая среда для ведения журналов, особенно когда она подключена к Castle.Windsor. Однако ...

Я обычно использую приложение Rolling File Appender, но в результате получается слишком много файлов журнала, чем я на самом деле хочу, поэтому вместо этого для моего последнего проекта вместо этого использовался базовый LogFileAppender, но проблема в том, что файл журнала продолжает расти казалось бы навсегда).

Как я могу сказать аппендеру не превышать фиксированный размер (и начать удалять старые журналы и добавлять новые в файл?

Моя текущая конфигурация выглядит так:

<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
  <file value="E:\Logs\iWater\Schedule-Dispatch-API.log"/>
  <param name="AppendToFile" value="true"/>
  <maximumFileSize value="2048KB"/>
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%-16date{dd MMM HH:mm:ss} %-7level %-25.35logger{1} %message%newline"/>
  </layout>
</appender>

Кажется, что атрибут MaximumFileSize не соблюдается. Любые решения?

В качестве альтернативы, как я могу настроить приложение прокрутки файлов для создания только 1 файла (когда-либо)?

Ответы [ 2 ]

61 голосов
/ 13 марта 2009

Класс FileAppender не имеет свойств MaxFileSize / MaximumFileSize. Вы получите их, только если используете RollingFileAppender. Вот пример, который ограничит ваш файл фиксированным максимальным размером без резервных копий (установите для maxSizeRollBackups значение 0). Обратите внимание, что когда файл достигает максимального размера, он усекается (в основном удаляет все существующие журналы и запускается заново):

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="log.txt" />
    <appendToFile value="true" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="0" />
    <maximumFileSize value="10MB" />
    <staticLogFileName value="true" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    </layout>
</appender>
2 голосов
/ 13 марта 2009

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

Чтобы ограничить количество файлов переноса, используйте атрибут MaxSizeRollBackups

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...