2010-03-05 5 views
6

J'utilise log4Net pour ma journalisation. J'ai aussi le jeu suivant ...Y a-t-il une différence entre log4net.Config.BasicConfigurator.Configure() et log4net.Config.XmlConfigurator.Configure()?

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

Ok, maintenant, quand j'ai le code suivant

log4net.Config.BasicConfigurator.Configure(); 

je ne suis pas vraiment d'info-debug interne bavard mais je ne me afficher tout ce que je connecte.

Maintenant, quand je troque ce code et à le remplacer par ceci:

log4net.Config.XmlConfigurator.Configure(); 

Je reçois beaucoup de debuggage-info xml et tout ce que je journal, obtient affiché.

Alors pourquoi est-ce? Quelle est la différence entre les deux?

Répondre

5

BasicConfigurator permet uniquement de configurer un seul appender, à la racine, et de ne pouvoir se connecter qu'à la console. Il ne vous donne pas vraiment d'informations de débogage car n'est pas vraiment aucune information de débogage.

vous donne l'ensemble complet des options de configuration log4net - voir la section Configuration du manuel pour les détails. Il commence réellement par un exemple en utilisant BasicConfigurator et continue pour vous montrer toutes les propriétés supplémentaires que vous pouvez définir dans le XML.

Dans une application de production, vous voudrez probablement avoir différents enregistreurs avec différents appenders utilisant différents seuils et zones; vous recevrez probablement des informations de connexion provenant de plusieurs composants différents et ne souhaiterez pas faire exactement la même consignation pour chacun d'entre eux. Vous voudrez également vous connecter à d'autres endroits que la console - fichiers journaux, journal des événements, alertes par e-mail, ce genre de chose. Vous ne pouvez le faire avec le XmlConfigurator.

+0

AH. je t'ai eu. J'ai actuellement deux appenders - ConsoleAppender et OutputDebugStringAppender - donc je vais utiliser le XmlConfigurator alors. J'ajouterai aussi plus pour la production, plus tard aussi. Merci mon pote. –

+4

En fait, vous pouvez configurer BasicConfigurator pour se connecter au fichier, voir http://marc.info/?l=log4net-user&m=117974721929259&w=4 –

4

Oui, il y a. Si vous voulez configurer vos logs en code, pas à partir d'une configuration, alors vous voudrez utiliser BasicConfigurator. @Aaronaught Votre message est assez vieux, ce qui pourrait expliquer pourquoi votre déclaration:

BasicConfigurator ne permet qu'à un seul utilisateur d'être configuré, à la racine, et il ne peut que se connecter à la console.

..est incorrect. J'utilise BasicConfigurator pour la journalisation des événements, des fichiers et des bases de données depuis mars 2015. Il prend également en charge plus d'un appender par enregistreur. Mon log4net est configuré par programme, pas à partir d'un fichier de configuration.

Questions connexes