2010-07-05 5 views
0

Je suis très nouveau à l'log4net, et je suis en train de créer plusieurs fichiers et connectez-vous pour en conséquence avec mes appels de méthode et voici mon code:connexion à plusieurs fichiers, qu'est-ce que je fais mal?

private static readonly ILog firstlog = LogManager.GetLogger("Data"); private static readonly ILog secondlog = LogManager.GetLogger("General"); 

puis je me connecte comme ceci:

firstlog.Info("some message"); secondlog.Info("some message"); 

et voici mon fichier de configuration:

<appender name="General" type="log4net.Appender.RollingFileAppender"> 
    <file type="log4net.Util.PatternString" value="C:\logs\myfile1.log"/> 
    <param name="Threshold" value="DEBUG"/> 
    <appendToFile value="true"/> 
    <rollingStyle value="Size"/> 
    <maxSizeRollBackups value="10"/> 
    <maximumFileSize value="10MB"/> 
    <staticLogFileName value="true"/> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %method %-5level %logger – %message%newline"/> 
    </layout> 
</appender> 
<appender name="Data" type="log4net.Appender.RollingFileAppender"> 
    <file type="log4net.Util.PatternString" value="C:\logs\myfile2.log"/> 
    <param name="Threshold" value="DEBUG"/> 
    <appendToFile value="true"/> 
    <rollingStyle value="Size"/> 
    <maxSizeRollBackups value="10"/> 
    <maximumFileSize value="10MB"/> 
    <staticLogFileName value="true"/> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %method %-5level %logger – %message%newline"/> 
    </layout> 
</appender> 
<logger name="general"> 
    <appender-ref ref="General"/> 
</logger> 
<logger name="data"> 
    <appender-ref ref="Data"/> 
</logger> 
<root> 
    <appender-ref ref="Data"/> 
</root> 

et ils sont tous enregistrés dans un fichier et les deux autres fichiers sont vides. Pourquoi est-ce? Qu'est-ce que je fais de mal?

+0

« ils sont tous enregistrés dans un fichier » - quel fichier est en fait être écrit? – rkellerm

+1

Juste une supposition, mais pourriez-vous essayer de fournir le nom exact de l'enregistreur à LogManager.GetLogger dans le cas où il est sensible à la casse. –

+0

ils sont enregistrés dans fichier2. oui j'ai remarqué les données et général étaient minuscules mais je suis toujours en train de faire la même chose. Je pense que la racine se connecte à l'appender "Data", mais mes deux enregistreurs ne font rien, je peux me tromper. – Precious

Répondre

0

Essayez de supprimer la ligne

<appender-ref ref="Data"/> 

du nœud ...

+0

devrais-je supprimer le nœud racine, et si je supprime cela de tous les enregistreurs ne serait-ce pas la même journalisation à un seul fichier. – Precious

+0

Le noeud doit lui-même rester dans la configuration. Dans votre exemple, l'appender "Data" est configuré deux fois, car chaque enregistreur hérite de la configuration de la racine. Si vous videz le nœud racine, vous le corrigez. – Koen

+0

oui cela a fonctionné quand j'ai retiré l'appender du noeud racine, il l'a empêché de se connecter tout à fichier2. mais il y avait une autre erreur interne qui causait ce dilemme que j'avais résolu maintenant. thnx par d way ... dieu j'aime ce site des gens très utiles: P – Precious