Существует два способа настройки и использования log4net.Во-первых, когда я могу настроить свой собственный appender и связанный регистратор:
<!-- 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 CMS, и у нее есть собственная система ведения журнала, которая использует log4net, и если я включу ведение журнала информации на корневом уровне, то будет записано много системных журналов.
Как вы используете log4net?Каждая часть системы пишет в своем собственном логгере, или все записывается в логгере по умолчанию, и конфигурация решает, что делать дальше?