2011-03-01 4 views
2

Est-il possible de définir des fichiers journaux individuels par fichier de guerre? Nous avons deux «guerres» d'application, chacune se rapportant à une fonction spécifique et gérée par différentes équipes. Nous voulons produire le journal de guerre individuel dans son propre fichier journal. S'il vous plaît noter que ces deux guerre utilisent un code commun et donc nous pouvons parler au niveau du paquet. Toutes les entrées sont appréciées.Log4j: Un fichier journal par guerre

Merci

Répondre

0

Voici un log4j solution qui fonctionne pour JBoss. Cela devrait fonctionner pour d'autres conteneurs à condition que les guerres utilisent des chargeurs de classe différents.

HTH

2

Si vous déployez votre application dans JBoss, vous pouvez définir un <filter> pour le <appender> déclaré dans jboss-log4j.xml. Un example from the JBoss Wiki:

<appender name="App1Log" class="org.apache.log4j.FileAppender"> 
    <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"></errorHandler> 
    <param name="Append" value="false"/> 
    <param name="File" value="${jboss.server.home.dir}/log/app1.log"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
    <param name="ConversionPattern" value="%d %-5p %c{1} %m%n"/> 
    </layout> 
    <filter class="org.jboss.logging.filter.TCLFilter"> 
    <param name="AcceptOnMatch" value="true"/> 
    <!-- value="app1.war" is incorrect. --> 
    <param name="DeployURL" value="app1-exp.war"/> 
    </filter>  

+0

Je pense que est suffisant, le TCLFilter ne recherche que les sous-chaînes. Cela peut vous aider si vous avez une guerre «versionnée» app1-x.y.z.war ou si vous déployez à partir d'un IDE avec un nom artificiel app1: war. –

0

Avec log4j2 (version log4j 2.x) il y a une recherche utile appelée web:contextPath, qui peut être utilisé pour spécifier le nom du fichier journal, par exemple:

<RollingFile name="RollingFile" fileName="${sys:catalina.base}/logs/${web:contextPath}.log" 
    filePattern="${sys:catalina.base}/logs/$${date:yyyy-MM}/${web:contextPath}-%d{MM-dd-yyyy}-%i.log.gz"> 
    ... 
</RollingFile> 

Ainsi, chaque fichier war reçoit son propre fichier journal.

Questions connexes