Quantcast
Viewing all articles
Browse latest Browse all 7

Logging mit Log4Net

Ich weiß, es gibt viele Artikel über das Loggen mit Log4Net. Image may be NSFW.
Clik here to view.
:-)

Trotzdem werde ich anhand eines Beispiels das Loggen mit Log4Net zeigen.

Als erstes schauen wir uns die Konfigurations-Datei an.

   1: <?xml version="1.0" encoding="utf-8" ?>

   2: <configuration>

   3:   

   4:   <configSections>

   5:     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />

   6:   </configSections>

   7:   

   8:   <log4net>

   9:     <appender name="FileAppender" type="log4net.Appender.RollingFileAppender">

  10:       <file value="log\log-file" />

  11:       <appendToFile value="true" />

  12:       <rollingStyle value="Date" />

  13:       <datePattern value="yyyyMMdd" />

  14:       

  15:       <layout type="log4net.Layout.PatternLayout">

  16:         <conversionPattern value="%date [%thread] %-5level %logger [%property{Session}] - %message%newline" />

  17:       </layout>

  18:     </appender>

  19:     

  20:     <root>

  21:       <level value="ALL" />

  22:       <appender-ref ref="FileAppender" />

  23:     </root>

  24:   </log4net>

  25:   

  26: </configuration>

Appender:

Ich verwende hier den RollingFileAppender, dieser kann nach Größe und Datum eingeschränkt werden. Ist die Größe erreicht bzw. hat sich das Datum geändert, wird eine neue Log-Datei angelegt.  In dem Beispiel werden die Log-Files in einem Unterverzeichnis “log”

[file value=log\log-file”] im Programmverzeichnis abgelegt. Mit rollingStyle lege ich fest wann eine neue Datei erstellt werden soll. Hier wird jeden Tag eine Log-File erstellt. Festgelegt wird das mit dem datePattern.

Weitere Appender sind hier nachschlagbar.

Layout:

Für das Layout verwende ich das Patternlayout, ein flexibles konfigurierbares Layout. Weitere Layouts gibt es hier.

Unter conversationPattern kann die Ausgabe definiert werden. Welche Möglichkeiten für die Ausgabe vorhanden sind, findet man hier.

Im letzten Abschnitt wird bestimmt wie und was geloggt werden soll. Folgende Level-Stufen sind verfügbar:

– Off

– Fatal

– Error

– Warn

– Info

– Debug

– All

Mit appender-ref wird der oben definierte Appender verwendet. Es können natürlich mehrere Appender definiert werden.

Verwendung im Code:

   1: static void Main()

   2: {

   3:     log4net.Config.XmlConfigurator.Configure(new FileInfo("logging.config"));

   4:     ILog logger = LogManager.GetLogger(typeof(Program));

   5:      

   6:     logger.Info("Info");

   7:     logger.Debug("Debug");

   8:     logger.Error("Error");

   9:     logger.Fatal("Fatal");

  10:     logger.Warn("Warn");

  11: }

In der dritten Zeile wird log4net konfiguriert, hierfür geben wir die “Config-Datei” an. Eine Zeile weiter wird der Logger geholt. Für jedes Level gibt es eine Methode.

Level:

Vielleicht sollte noch die Hierarchie verschiedener Levels erwähnt werden.

Info

   1: 2009-10-11 18:36:32,305 [10] INFO  WindowsFormsApplication1.Program [(null)] - Info

   2: 2009-10-11 18:36:32,339 [10] ERROR WindowsFormsApplication1.Program [(null)] - Error

   3: 2009-10-11 18:36:32,340 [10] FATAL WindowsFormsApplication1.Program [(null)] - Fatal

   4: 2009-10-11 18:36:32,340 [10] WARN  WindowsFormsApplication1.Program [(null)] - Warn

Debug

   1: 2009-10-11 18:37:23,195 [9] INFO  WindowsFormsApplication1.Program [(null)] - Info

   2: 2009-10-11 18:37:23,228 [9] DEBUG WindowsFormsApplication1.Program [(null)] - Debug

   3: 2009-10-11 18:37:23,228 [9] ERROR WindowsFormsApplication1.Program [(null)] - Error

   4: 2009-10-11 18:37:23,228 [9] FATAL WindowsFormsApplication1.Program [(null)] - Fatal

   5: 2009-10-11 18:37:23,228 [9] WARN  WindowsFormsApplication1.Program [(null)] - Warn

Error

   1: 2009-10-11 18:37:44,140 [9] ERROR WindowsFormsApplication1.Program [(null)] - Error

   2: 2009-10-11 18:37:44,173 [9] FATAL WindowsFormsApplication1.Program [(null)] - Fatal

Anhand der Beispiele kann man erkennen, dass nicht nur das eingestellt Level geloggt, sondern hierarchisch vorgegangen wird.

Fazit:

Log4Net ist einfach und schnell einzusetzen. Durch die riesige Auswahl an Möglichkeiten des Loggings ist sicherlich für jeden was dabei.

Viel Spaß beim Loggen! Image may be NSFW.
Clik here to view.
:-)


Viewing all articles
Browse latest Browse all 7