2009-10-20 10 views
0

J'ai un dilemme pour configurer mon log4j.xml (ci-joint) pour la web-app Quartz.aide log4j.xml

Il est craché des messages de journal à stdout (que mon instance Tomcat se connecte ensuite) pour INFO rapporté par plug-in LoggingJobHistory Quartz. Il utilise l'appendeur "stdout" défini ci-dessous; Je peux le dire parce que j'ai mis le "ZZZ" là et il fait son chemin dans le journal de Tomcat.

Je ne peux pas comprendre pourquoi, cependant. Les seules choses qui utilisent l'appender "stdout" sont root et org.apache, les deux configurations pour WARN. Pourquoi reçois-je des messages INFO?

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 

    <appender name="stdout" class="org.apache.log4j.ConsoleAppender"> 
     <!-- <layout class="org.apache.log4j.TTCCLayout"/> --> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="ZZZ %d %-5p [%t] %C{2} (%F:%L) - %m%n"/> 
     </layout> 
    </appender> 

    <appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender"> 
     <param name="File" value="${quartz.root}/WEB-INF/logs/quartz-log.txt"/> <!-- orther options ${user.home} --> 
     <param name="DatePattern" value="'.'yyyy-MM-dd"/> 
     <param name="Append" value="true"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/> 
     </layout> 
    </appender> 

    <appender name="appFILE" class="org.apache.log4j.DailyRollingFileAppender"> 
     <param name="File" value="${quartz.root}/WEB-INF/logs/app-log.txt"/> <!-- orther options ${user.home} --> 
     <param name="DatePattern" value="'.'yyyy-MM-dd"/> 
     <param name="Append" value="true"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/> 
     </layout> 
    </appender> 

    <appender name="HtmlAppender" class="org.apache.log4j.DailyRollingFileAppender"> 
      <param name="File" value="${quartz.root}/WEB-INF/logs/ShortResults.html"/> 
     <param name="DatePattern" value="'.'yyyy-MM-dd-HH'.html'"/> 
     <layout class="org.apache.log4j.HTMLLayout"/> 
      <!--/layout--> 
     </appender>   

    <!-- log detail configuration --> 
    <logger name="org.quartz"> 
     <level value="info"/> 
     <appender-ref ref="FILE"/> 
     <appender-ref ref="HtmlAppender"/> 
    </logger> 

    <logger name="com.opensymphony"> 
     <level value="info"/> 
     <appender-ref ref="HtmlAppender"/> 
    </logger> 

    <logger name="org.apache"> 
     <level value="warn"/> 
     <appender-ref ref="stdout"/> 
    </logger> 

    <root> 
     <level value="warn"/> 
     <appender-ref ref="stdout"/> 
     <appender-ref ref="FILE"/> 
    </root> 


</log4j:configuration> 

Répondre

1

Tomcat intercepte toutes les sorties vers stdout et stderr et les redirige vers log4j. Tout code d'application qui utilise stdout ou stderr apparaîtra donc dans les fichiers journaux log4j habituels.

Je pense que le plugin LoggingJobHistory écrit des choses sur stdout, ce qui est une mauvaise pratique, mais pas très surprenant (le code de base de Quartz n'est pas vraiment top).

+0

hmmm ... je l'aurais soupçonné que - au début, je ne savais pas que ce soit stdout l'application ou l'écriture de log4j à stdout, sauf que je peux contrôler le format d'enregistrement des log4j, et que des modifications mineures de la sortie. (Voir la note "ZZZ" en haut) –

+0

-1 - pas d'utilisation stdout, voir http://svn.opensymphony.com/fisheye/browse/quartz/branches/quartz_1-6/src/java/org/quartz/ plugins/history/LoggingJobHistoryPlugin.java? r = 654 – fvu

+0

Assez juste, mais cela ne change pas la façon dont fonctionne Tomcat. – skaffman