Farbcodiertes Logging für Tomcat
Aufbauend auf Krassis Artikel zum farbcodierten Logging für JBoss und JBoss ESB habe ich das bunte Loggen auch mal für den Tomcat umgesetzt.
Benutzt wurde Tomcat 6.0.20, es sollte aber auch mit jeder anderen Version so oder so ähnlich funktionieren.
Die Einrichtung gliedert sich in zwei Schritte:
I. Tomcats internen Loggingmechanismus auf log4j umstellen
II. Log4j für Tomcat mit dem farbgebenden Logger konfigurieren
I. Tomcat auf log4j umstellen
1. Tomcat stoppen
2. log4j.jar z.B. hier herunterladen und ins {$TOMCAT_HOME}/lib
Verzeichnis kopieren
3. Das interne Tomcat Logging für log4j „fit machen“.
Dazu müssen die Dateien
tomcat-juli.jar
ins{$TOMCAT_HOME}/bin
undtomcat-juli-adapters.jar
ins{$TOMCAT_HOME}/lib
Verzeichnis kopiert und ggf. ersetzt werden.
Herunterladen kann man beide z.B. unter
ftp://ftp.uni-erlangen.de/pub/mirrors/apache/tomcat/tomcat-6/v6.0.26/bin/extras//bin/extras/
oder von einem anderen Mirror, den man auf
http://tomcat.apache.org/download-60.cgi
aus der Liste auswählt.
Für ältere Versionen wird man unter http://archive.apache.org/dist/tomcat/tomcat-6/ fündig.
4. Die Datei {$TOMCAT_HOME}/conf/logging.properties
löschen oder umbenennen.
Verwendet wird in Zukunft die {$TOMCAT_HOME}/lib/log4j.properties
zur Konfiguration von log4j (siehe Schritt II).
5. Fertig mit I.
II. Log4j für Tomcat mit dem farbgebenden Logger konfigurieren
1. ppsa-log4j-color-0.0.1.jar aus dem PPSA Reppo herunterladen und ins {$TOMCAT_HOME}/lib
Verzeichnis kopieren.
2. Folgendes in die {$TOMCAT_HOME}/lib/log4j.properties
einfügen:
log4j.rootLogger=DEBUG, TOMCAT, CONSOLE ### CONSOLE appender (catalina.out) -- standard # This will add colored log4j output of Tomcat to the standard catalina.out file, # mixed with the output th deployed web-applications produce log4j.appender.CONSOLE=de.rrze.ppsa.log.ANSIConsoleAppender #log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Target=System.out log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=[TOMCAT] %d{ABSOLUTE} [%t] %5p %c:%L - %m%n #log4j.appender.CONSOLE.layout.ConversionPattern=%d{ABSOLUTE} [%t] %5p %c:%L - %m%n #log4j.appender.CONSOLE.layout.ConversionPattern=%d{ABSOLUTE} [%t] %5p %c{1}:%L - %m%n ### TOMCAT appender (tomcat.log) -- optional # This will log log4j output of Tomcat to a seperate tomcat.log file, seperate # from the output the deployed web-applications produce which will still be logged # to catalina.out #log4j.appender.TOMCAT=org.apache.log4j.RollingFileAppender #log4j.appender.TOMCAT.File=${catalina.base}/logs/tomcat.log #log4j.appender.TOMCAT.MaxFileSize=100MB #log4j.appender.TOMCAT.MaxBackupIndex=10 #log4j.appender.TOMCAT.layout=org.apache.log4j.PatternLayout #log4j.appender.TOMCAT.layout.ConversionPattern=[TOMCAT] %d{ABSOLUTE} [%t] %5p %c:%L - %m%n ##log4j.appender.TOMCAT.layout.ConversionPattern=%d{ABSOLUTE} [%t] %5p %c:%L - %m%n ##log4j.appender.TOMCAT.layout.ConversionPattern=%d{ABSOLUTE} [%t] %5p %c{1}:%L - %m%n ### TOMCAT log4j.logger.org.apache.catalina=INFO #log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=INFO log4j.logger.org.apache.coyote=INFO log4j.logger.org.apache.tomcat=INFO log4j.logger.org.apache.commons.digester=INFO log4j.logger.org.apache.jasper=INFO
3. Tomcat starten.
4. Logausgaben in {$TOMCAT_HOME}/logs/catalina.out
beobachten.
Anmerkung: Anwendungen die eine eigene log4j Library und log4j.properties mitbringen können nicht zentral in obiger Datei konfiguriert werden und benutzen demnach auch nicht das farbige Logging.
Hope that helps anyone!
Have fun!
Quellen:
http://blog.ralscha.ch/?p=45
http://www.blogs.uni-erlangen.de/PP/stories/4653/
http://tomcat.apache.org/tomcat-6.0-doc/logging.html#log4j