Файлы журнала log4net исчезают при перезапуске службы - PullRequest
0 голосов
/ 16 ноября 2009

Мы используем log4net для создания наших файлов журналов из служб Windows, и мы используем RollingFileAppender на основе даты. Используемая нами версия log4net - 1.2.9. Теперь для вопроса. Мы обновляемся по дате, и по дням, когда нам нужно перезапустить службу, файл журнала для этого дня не обновляется.

Пример: скажем, сегодня 16 ноября. У меня есть logfile.txt, который содержит сегодняшнюю информацию, и у меня есть logfile.txt.20091115, logfile.txt.20091112 и logfile.txt.20091111. Я скучаю по файлам с 11/13 и 11/14, потому что служба была перезапущена в оба дня.

Как кто-либо другой испытал это или знает, почему это происходит?

Обновление:

Вот мой раздел приложения log4net.config

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
  <param name="File" value="logfile.txt" />
  <param name="AppendToFile" value="true" />
  <param name="MaxSizeRollBackups" value="10" />
  <param name="MaximumFileSize" value="1000KB" />
  <param name="RollingStyle" value="Date" />
  <param name="DatePattern" value="yyyyMMdd" />
  <param name="StaticLogFileName" value="true" />
  <layout type="log4net.Layout.PatternLayout">
    <param name="Header" value="[Service Started]&#13;&#10;" />
    <param name="Footer" value="[Service Stopped]&#13;&#10;" />
    <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
  </layout>
</appender>

Как видите, для параметра AppendToFile установлено значение true.

Я хочу кое-что прояснить. Файл не перезаписывается во время перезапуска службы. Когда предполагается, что файл катится по дате, это когда файл исчезает.

1 Ответ

2 голосов
/ 16 ноября 2009

Как говорит empi, нам нужно увидеть ваш файл конфигурации, чтобы точно сказать. Однако держу пари, что для свойства Append установлено значение false. Из log4net документов :

Если значение установлено в false, то файл будет перезаписан, если он установлен к истине, тогда файл будет добавлен к.

Попробуйте добавить это в конфигурацию RollingFileAppender:

 <appendToFile value="true" />

РЕДАКТИРОВАТЬ : Глядя на ваш опубликованный файл конфигурации, эта строка выглядит странно:

<param name="StaticLogFileName" value="true" />

... который задокументирован как:

Получает или задает значение, указывающее всегда ли входить в систему одинаково файл. true, если всегда должен быть зарегистрирован в тот же файл, в противном случае ложь.

Звучит так, как будто соответствует тому, что вы видите. Попробуйте удалить эту строку или установить значение false.

...