2010-09-16 1 views
2

J'ai la situation suivante.
Il existe 2 classes: ClassA, ClassB. Je veux qu'ils se connectent dans différents fichiers ClassA.log, ClassB.log. Pour ce faire, j'utilise le RollingFileAppender. Comment puis-je écrire ceci d'une manière plus courte que ce qui suit:Configuration des annexes

<appender name="RollingFileAppenderA" type="log4net.Appender.RollingFileAppender"> 
    <file value="ClassA.log" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Size" /> 
    <maxSizeRollBackups value="10" /> 
    <maximumFileSize value="100KB" /> 
    <staticLogFileName value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
    </layout> 
</appender> 

<appender name="RollingFileAppenderB" type="log4net.Appender.RollingFileAppender"> 
    <file value="ClassB.log" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Size" /> 
    <maxSizeRollBackups value="10" /> 
    <maximumFileSize value="100KB" /> 
    <staticLogFileName value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
    </layout> 
</appender> 

Comme vous pouvez le voir, la seule chose que les appenders diffèrent est le nom du fichier où ils écrivent les journaux. Alors, existe-t-il un moyen de définir un seul RollingFileAppender pour le problème donné?

+0

Je crois que la réponse est non, il n'y a pas un moyen plus court. – IAmTimCorey

Répondre

0

J'ai travaillé sur plusieurs projets avec plusieurs applicateurs de fichiers configurés comme le vôtre. À ma connaissance il n'y a aucun moyen de définir une configuration d'appender commune, puis de partager cela entre plusieurs appenders. Cela a probablement quelque chose à voir avec la façon dont log4net interprète les balises XML dans les propriétés sur les appenders. (Et j'ai regardé de près le ForwardingAppender, mais ce n'est pas fait pour ça).


Y at-il une raison autre que « ne vous répétez pas » (DRY) que vous voulez nettoyer la configuration? Si votre app.config (ou web.config) devient incontrôlable, vous pouvez utiliser un fichier de configuration separate.

Questions connexes