Існує два способи налаштування та використання log4net. Перший - це коли я можу налаштувати власний додаток та пов’язаний журнал:
<!-- language: xml -->
<appender name="myLogAppender" type="log4net.Appender.RollingFileAppender" >
<file value="Logs\myLog.log" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level - %message%n" />
</layout>
</appender>
<logger name="myLog">
<level value="All"></level>
<appender-ref ref="myLogAppender" />
</logger>
І тоді, коли я хочу написати щось у журналі, я можу зробити наступне:
ILog log = LogManager.GetLogger("myLog");
log.Info("message");
Інший спосіб його використання - налаштувати root так детально, як я хочу:
<!-- language: xml -->
<root>
<level value="Error" />
<appender-ref ref="myLogAppender" />
</root>
І в цьому випадку я можу реєструвати такі повідомлення:
ILog log = LogManager.GetLogger(typeof(Bar));
log.Info("message");
Переваги другого підходу в тому, що ви можете вмикати або вимикати деякі повідомлення на льоту. Але проблема в тому, що я розробляю систему управління вмістом EPiServer, і вона має власну систему ведення журналу, яка використовує log4net, і якщо я ввімкнув реєстрацію інформації на кореневому рівні, тоді буде записано багато системних журналів.
Як ви використовуєте log4net? Кожна частина системи пише у своєму реєстраторі, або все записується в реєстраторі за замовчуванням, і конфігурація вирішує, що робити далі?