Computerwissenschaften

So melden Sie sich mit Log4net in C # an

So melden Sie sich mit Log4net in C # an

Wenn Sie Computercode in C # schreiben, empfiehlt es sich, Protokollierungscode einzuschließen. Auf diese Weise wissen Sie, wo Sie suchen müssen, wenn etwas schief geht. Die Java-Welt tut dies seit Jahren. Sie können log4net für diesen Zweck verwenden. Es ist Teil von Apache log4j 2, einem beliebten Open-Source-Protokollierungsframework.

Dies ist nicht das einzige .NET-Protokollierungsframework. da sind viele. Der Name Apache ist jedoch vertrauenswürdig und das ursprüngliche Java-Protokollierungsframework gibt es seit mehr als 15 Jahren.

 

Warum ein Log4net-Protokollierungsframework verwenden?

Wenn eine Anwendung oder ein Server abstürzt, fragen Sie sich, warum. War es ein Hardwarefehler, Malware, vielleicht ein Denial-of-Service-Angriff oder eine seltsame Kombination von Schlüsseln, die es schafft, alle Ihre Codeprüfungen zu umgehen? Du weißt es einfach nicht.

Sie müssen herausfinden, warum ein Absturz aufgetreten ist, damit er korrigiert werden kann. Wenn die Protokollierung aktiviert ist, können Sie möglicherweise sehen, warum dies passiert ist.

 

Einstieg

Laden Sie die log4net-Datei von der Apache log4net-Website herunter. Überprüfen Sie die Integrität der heruntergeladenen Dateien mithilfe der PGP-Signatur oder der MD5-Prüfsummen. Die Prüfsummen sind nicht so starke Indikatoren wie die PGP-Signatur.

 

Verwenden von Log4net

Log4net unterstützt sieben Protokollierungsstufen von keiner bis zu allen mit zunehmender Priorität. Diese sind:

  1. AUS
  2. TÖDLICH
  3. ERROR
  4. WARNEN
  5. DIE INFO
  6. DEBUGGEN
  7. ALLE

Die höheren Ebenen umfassen alle niedrigeren. Beim Debuggen zeigt die Verwendung von DEBUG  alle an, aber in der Produktion sind Sie möglicherweise nur an FATAL interessiert. Diese Auswahl kann auf Komponentenebene programmgesteuert oder in einer XML-Konfigurationsdatei getroffen werden.

 

Logger und Appender

Aus Gründen der Flexibilität verwendet log4net Logger, Appender und Layouts. Ein Logger ist ein Objekt, das die Protokollierung steuert, und eine Implementierung der ILog-Schnittstelle, die fünf boolesche Methoden angibt: isDebugEnabled, IsInfoEnabled, IsWarnEnabled, IsErrorEnabled und IsFatalEnabled. Außerdem werden die fünf Methoden Debug, Info, Warn, Error und Fatal sowie Überladungen und fünf formatierte Zeichenfolgenversionen angegeben. Die vollständige ILog-Oberfläche finden Sie im log4net-Online-Handbuch.

Loggern wird eine der Ebenen zugewiesen, jedoch nicht ALL oder OFF, sondern nur die anderen fünf.

Appender steuern, wohin die Protokollierung geht. Es kann sich um eine Datenbank, einen In-Memory-Puffer, eine Konsole, einen Remote-Host, eine Textdatei mit fortlaufenden Protokollen, das Windows-Ereignisprotokoll oder sogar eine E-Mail über SMTP handeln. Insgesamt gibt es 22 Appender, die kombiniert werden können, sodass Sie eine große Auswahl haben. Anhänge werden an einen Logger angehängt (daher der Name).

Appender filtern Ereignisse, indem sie Teilzeichenfolgen, Ereignisebene, Ebenenbereich und den Start des Loggernamens abgleichen.

 

Layouts

Schließlich gibt es sieben Layouts, die einem Appender zugeordnet werden können. Diese steuern, wie die Nachricht des Ereignisses protokolliert wird, und können Ausnahmetext, Zeitstempellayouts und XML-Elemente enthalten .

 

Konfigurieren mit XML

Die Konfiguration kann zwar programmgesteuert erfolgen, jedoch auch mit XML-Konfigurationsdateien. Warum würden Sie Konfigurationsdateien Codeänderungen vorziehen? Ganz einfach, es ist viel einfacher, einen Support-Mitarbeiter eine Änderung an einer Konfigurationsdatei vornehmen zu lassen, als einen Programmierer dazu zu bringen, Code zu ändern, eine neue Version zu testen und erneut bereitzustellen. Konfigurationsdateien sind also der richtige Weg. Der einfachste Weg ist das Hinzufügen von App.config zu Ihrem Projekt, wie im folgenden Beispiel gezeigt:

 

In der Online-Dokumentation zu log4net werden alle Felder der Konfigurationsdatei erläutert. Nachdem Sie App.config eingerichtet haben, fügen Sie mit log4net und dieser Zeile Folgendes hinzu:

[assembly: log4net.Config.XmlConfigurator(Watch=true)]

Außerdem muss der eigentliche Logger mit einem Aufruf von LogManager.GetLogger (…) abgerufen werden. Der GetLogger wird normalerweise mit dem Typ (Klasse) aufgerufen, in dem er verwendet wird. Dieser Funktionsaufruf ruft jedoch auch Folgendes ab:

System.Reflection.MethodBase.GetCurrentMethod().DeclaringType

Dieses Beispiel zeigt beide mit einem Kommentar, sodass Sie auswählen können.

using log4net;

[assembly: log4net.Config.XmlConfigurator(Watch=true)]

namespace gvmake
{
class Program
{
private static readonly ILog log=LogManager.GetLogger (System.Reflection.MethodBase.GetCurrentMethod
().DeclaringType) ;
//private static readonly ILog log=LogManager.GetLogger(typeof (Program)) ;
static void Main(string[] args)
{
log.Debug(„Application Starting“) ;
}
}
}

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.