2010-03-05 19 views
6

Ich verwende log4Net für meine Protokollierung. Ich habe auch den folgenden Satz ...Gibt es einen Unterschied zwischen log4net.Config.BasicConfigurator.Configure() und log4net.Config.XmlConfigurator.Configure()?

<log4net debug="true"> .. </> 

Ok, jetzt, wenn ich den folgenden Code haben

log4net.Config.BasicConfigurator.Configure(); 

Ich habe nicht wirklich eine ausführliche Infos internen Debug aber ich bekomme angezeigt alles, was ich logge.

Nun, wenn ich diesen Code tauschen und ersetzen Sie es mit diesem:

log4net.Config.XmlConfigurator.Configure(); 

ich eine Menge interner-debug xml Informationen zu erhalten und alles, was ich einzuloggen, angezeigt wird.

Also warum ist das? Was ist der Unterschied zwischen den beiden?

Antwort

5

BasicConfigurator kann nur ein Appender im Stammverzeichnis konfiguriert werden, und es kann nur an der Konsole angemeldet werden. Es gibt Ihnen keine Debug-Informationen, weil nicht wirklich Debug-Informationen ist.

XmlConfigurator gibt Ihnen den vollständigen Satz von log4net-Konfigurationsoptionen - Details finden Sie im Abschnitt Configuration des Handbuchs. Es beginnt mit einem Beispiel mit BasicConfigurator und zeigt Ihnen alle zusätzlichen Eigenschaften, die Sie im XML-Code festlegen können.

In einer Produktionsanwendung möchten Sie wahrscheinlich verschiedene Protokollierer mit unterschiedlichen Appendern verwenden, die unterschiedliche Schwellenwerte und Bereiche verwenden. Sie werden wahrscheinlich Log-Informationen von mehreren verschiedenen Komponenten erhalten und wollen nicht genau die gleiche Protokollierung für jeden einzelnen durchführen. Sie sollten sich auch unbedingt an anderen Orten als der Konsole anmelden - Protokolldateien, Ereignisprotokoll, E-Mail-Benachrichtigungen, diese Art von Dingen. Sie können dies nur mit der XmlConfigurator tun.

+0

AH. Erwischt. Ich habe momentan zwei Appender - ConsoleAppender & OutputDebugStringAppender - also werde ich dann den XmlConfigurator benutzen. Ich werde später auch mehr für die Produktion hinzufügen. Danke Kumpel. –

+4

Eigentlich können Sie BasicConfigurator so konfigurieren, dass er sich in einer Datei anmeldet, siehe http://marc.info/?l=log4net-user&m=117974721929259&w=4 –

4

Ja, es gibt. Wenn Sie Ihren Log-in-Code und nicht eine Konfiguration konfigurieren möchten, sollten Sie den BasicConfigurator verwenden. @Aaronaught Ihr Beitrag ist ziemlich alt, was Ihre Erklärung erklären könnte:

BasicConfigurator ermöglicht nur die Konfiguration eines Appenders im Stammverzeichnis, und es kann nur an der Konsole angemeldet werden.

..is falsch. Ich verwende den BasicConfigurator für die Ereignis-, Datei- und Datenbankprotokollierung ab März 2015. Er unterstützt auch mehr als einen Appender pro Logger. Mein log4net wird programmgesteuert konfiguriert, nicht aus einer Konfigurationsdatei.

Verwandte Themen