2010-12-10 12 views
1

Nach dem Empfang auf log4j redirect stdout to DailyRollingFileAppenderProtokollierung stderr und stdout mit log4j

Und es wurde bis zum einem gewissen Punkt zu arbeiten, und es blieb dann aus irgendeinem Grund zu arbeiten.

Irgendeine Idee von was kann falsch sein? Ich habe verifiziert und habe genau den gleichen Code wie tieSystemOutAndErrToLog.

Mein log4j.properties ist:

log4j.rootLogger = INFO, rollingFile, CONSOLE 

log4j.logger.org.hibernate=INFO 
log4j.logger.com.mchange=INFO 
log4j.logger.com.opensymphony=WARN 
log4j.logger.com.opensymphony.xwork2.ognl=ERROR 

log4j.logger.org.hibernate.SQL=DEBUG, rollingFile 
log4j.additivity.org.hibernate.SQL=false 

#log4j.logger.com.mchange.v2.c3p0.impl.NewPooledConnection=DEBUG 
#log4j.logger.com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool=DEBUG 
#log4j.logger.com.mchange.v2.c3p0.impl.DefaultConnectionTester=DEBUG 
log4j.logger.com.mchange.v2.resourcepool.BasicResourcePool=INFO 


log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender 
log4j.appender.rollingFile.File=/export/log/alpha/frontend.log 
log4j.appender.rollingFile.MaxFileSize=10MB 
log4j.appender.rollingFile.MaxBackupIndex=5 
log4j.appender.rollingFile.layout = org.apache.log4j.PatternLayout 
log4j.appender.rollingFile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - %p %t %c - %m%n 

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} - %p %t %c - %m%n 

insbesondere im nicht der Lage, dieses Ereignis zu protokollieren, die in catalina.out protokolliert:

Dec 10, 2010 1:40:29 AM org.apache.catalina.core.ApplicationDispatcher invoke 
SEVERE: Servlet.service() for servlet jsp threw exception 
java.lang.NullPointerException 

AKTUALISIERT ANTWORT: so i endlich herausgefunden. Aus irgendeinem obskuren Grund, den ich nicht einmal ergründen kann, leitet tomcat nicht abgefangene Ausnahmen durch log4j und sie werden auf stdout ausgegeben. Ich musste sie auf einer Ausnahmeseite protokollieren.

Antwort

1

Ist es möglich, dass Sie eine JAR-Datei referenzieren das enthält eine eigene log4j.property?

+0

nein. Ich sehe Dinge in /var/log/tomcat6/catalina.out protokolliert werden, aber nichts in /export/log/alpha/frontend.log. Und wie ich bereits erwähnt habe, funktionierte es sehr gut. Ich bin mir nicht sicher, was passiert ist. – Ricardo

+0

Bedeutet die Tatsache, dass sich catalina.out einloggt, wirklich, dass Sie nicht wie erwartet eine andere log4j.properties-Datei aufnehmen? – Joel

+0

Nein, ich habe keine andere Eigenschaftendatei. Außerdem ist catalina.out ein Standard-Escape für logging, d. H. Log4j fehlt diese Ereignisse aus irgendeinem Grund, den ich nicht verstehen kann. – Ricardo

0

Sie können „-Dlog4j.debug“ hinzufügen, die log4j-Datei Sie verwenden

+0

Ich weiß, welche log4j-Datei ich verwende, aber diese Ereignisse werden nicht vom Logger erfasst. – Ricardo

0

keine Berechtigungen (des Tomcat-Prozess owner) zu schreiben in die Zielprotokolldatei zu sehen? :)