Ниже приведен раздел log4net из app.config.
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net debug="true">
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<file type="log4net.Util.PatternString" value="${TMP}\SRG\Logs\Log_%env{USERNAME}_%date{yyyyMMdd}.log" />
<appendToFile value="true" />
<bufferSize value="20" />
<LockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<layout type="log4net.Layout.PatternLayout">
<header type="log4net.Util.PatternString" value="[Log Starts]%newline" />
<footer type="log4net.Util.PatternString" value="[Log Ends]%newline" />
<conversionPattern value="%date [%username] - %message%newline" />
</layout>
</appender>
<logger name="SRGApplicationDebugLog">
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
</logger>
</log4net>
Проблема 1: я получаю верхний и нижний колонтитулы в два раза больше всякий раз при запуске моего приложения, но мне нужно этого избежать.
[Начало журнала]
[Конец журнала]
[Начало журнала]
[Конец журнала]
[Начало журнала]
2012-11-08 12:25:03,376 [имя пользователя] - Приложение началось
[Журнал заканчивается]
Проблема 2: я не понимаю, откуда берется пара пустых верхних и нижних колонтитулов.
- Я создаю регистратор, как показано ниже:
_debugLogger = LogManager.GetLogger("SRGApplicationDebugLog");
XmlConfigurator.Configure();
- Чтобы использовать Регистратор:
_debugLogger.DebugFormat(logMessage);
- Я добавил эту строку явно в AssemblyInfo.cs для log4net.
[assembly: XmlConfigurator(Watch = true)]
Вопрос: Хотите исправить проблемы, выделенные жирным шрифтом
GetLogger
иXmlConfigurator.Configure()
? Что это за приложение? Веб-приложение или консольное приложение и т. д.? Иногда случается, что эти вызовы размещаются в неправильном месте, и они вызываются несколько раз, что приводит к нежелательному поведению. - person Suhas   schedule 08.11.2012