Es gibt zwei Möglichkeiten, log4net zu konfigurieren und zu verwenden. Der erste ist, wenn ich meinen eigenen Appender und den zugehörigen Logger konfigurieren kann:
<!-- 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>
Und wenn ich dann etwas in ein Protokoll schreiben möchte, kann ich Folgendes tun:
ILog log = LogManager.GetLogger("myLog");
log.Info("message");
Eine andere Möglichkeit, es zu verwenden, besteht darin, root so zu konfigurieren, dass es so detailliert ist, wie ich möchte:
<!-- language: xml -->
<root>
<level value="Error" />
<appender-ref ref="myLogAppender" />
</root>
Und in diesem Fall kann ich Nachrichten wie folgt protokollieren:
ILog log = LogManager.GetLogger(typeof(Bar));
log.Info("message");
Der zweite Ansatz bietet den Vorteil, dass Sie einige Nachrichten im laufenden Betrieb aktivieren oder deaktivieren können. Das Problem ist jedoch, dass ich in EPiServer CMS entwickle und es ein eigenes Protokollierungssystem hat, das log4net verwendet. Wenn ich die Informationsprotokollierung auf Stammebene aktiviere, werden viele Systemprotokolle geschrieben.
Wie benutzt man log4net? Jeder Teil eines Systems schreibt in seinen eigenen Logger oder alles wird in den Standardlogger geschrieben, und die Konfiguration entscheidet, was als nächstes zu tun ist.