Manière correcte de l'utilisation de log4net (enregistreur de nommage)

Il y a deux façons de configuration et l'utilisation de log4net. D'abord, c'est quand je peux configurer mon propre appender et associés logger:

<!-- 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>

Et puis quand je veux écrire quelque chose dans le journal, je peux faire ce qui suit:

ILog log = LogManager.GetLogger("myLog");
log.Info("message");

Une autre façon de l'utiliser est de configurer la racine à être aussi détaillé que je veux:

<!-- language: xml -->

<root>
    <level value="Error" />
    <appender-ref ref="myLogAppender" />
</root>

Et dans ce cas je peux le journal des messages comme ceci:

ILog log = LogManager.GetLogger(typeof(Bar));
log.Info("message");

Les avantages de la deuxième approche est que vous pouvez activer ou désactiver certains des messages à la volée. Mais le problème c'est que je suis en développement dans EPiServer CMS et il a son propre système d'enregistrement qui utilise log4net et si j'ai activé la journalisation info au niveau de la racine, puis beaucoup de journaux système sera écrit.

Comment utilisez-vous log4net? Chaque partie d'un système de l'écrit dans son propre enregistreur, ou tout est écrit en défaut enregistreur, et la configuration décide quoi faire ensuite?

InformationsquelleAutor Sly | 2011-08-17