У меня есть Log4Net RollingFileAppender, настроенный как:
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<root>
<level value="ALL" />
</root>
<logger name="RollingFileAppender" additivity="false">
<level value="DEBUG"/>
<appender-ref ref="RollingFileAppender" />
</logger>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender" >
<param name="File" value="C:\\MyLog.log" />
<param name="AppendToFile" value="true" />
<param name="DatePattern" value="yyyy-MM-dd"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%m%n"/>
</layout>
</appender>
</log4net>
</configuration>
Глядя на документацию , Стиль прокатки по умолчанию - Composite , поэтому имеет смысл, что он будет катиться, когда достигнет определенного размера (по умолчанию 10 МБ), а не только в день.
Проблема в том, что когда он достигает размера, он перезапускает журнал, и я теряю данные с первой половины дня (он достигает этого размера около полудня).
Почему бы просто не перейти к новому файлу, и все будущие строки журнала будут помещены в MyLog.log?
Или это журнал катится, но затем в полночь он снова катится и перезаписывает устаревший журнал (например, катится к MyLog.log2009-04-08, как только он достигает 10 МБ, а затем переписывает этот же файл в полночь)?
Я установлю
<rollingStyle value="Date" />
Это все, что я должен сделать, чтобы убедиться, что он катится только по границе Даты? Могу ли я изменить это на лету в Log4Net.config, или мне нужно перезапустить приложение? Он работает на IIS6.