Подтвердить что ты не робот

Максимальный размер файла LogFileAppender в Log4Net

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

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

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

4b9b3361

Ответ 1

Класс 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

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

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