Inhaltsverzeichnis
Apache Tomcat 6 - Logging - log4j
Apache Tomcat stellt eine Umgebung zur Ausführung von Java-Code für Web-Server bereit. Es handelt sich um einen Servlet-Container, der mithilfe des JSP-Compilers Jasper JavaServer Pages in Servlets übersetzen und ausführt. Zusätzlich ist ein kompletter HTTP-Server integriert.
Damit Apache Tomcat dessen eigene Log-Dateien wie z.B.
catalina.out
localhost.log
manager.log
host-manager.log
- u.v.m
auch mithilfe von log4j aufbereiten und schreiben kann, sind nachfolgende Schritte notwendig.
HINWEIS - Die Originalbeschreibung zur Einbindung von log4j, kann unter nachfolgendem Link aufgerufen werden:
Herunterladen
Nachfolgende Dateien müssen zur Nutzung von log4j für die Verwendung in eigenen Log-Dateien des Apache Tomcat heruntergeladen werden:
Nachfolgende Befehle können zum Download (in das /tmp
-Verzeichnis) genutzt werden:
# wget http://apache.mirror.iphh.net/tomcat/tomcat-6/v6.0.35/bin/extras/tomcat-juli-adapters.jar -P /tmp --2012-08-03 15:17:54-- http://apache.mirror.iphh.net/tomcat/tomcat-6/v6.0.35/bin/extras/tomcat-juli-adapters.jar Resolving apache.mirror.iphh.net... 62.201.161.83, 2001:868:0:182::3 Connecting to apache.mirror.iphh.net|62.201.161.83|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 22995 (22K) [application/java-archive] Saving to: “/tmp/tomcat-juli-adapters.jar” 100%[=============================================================================>] 22,995 --.-K/s in 0.1s 2012-08-03 15:17:54 (211 KB/s) - “/tmp/tomcat-juli-adapters.jar” saved [22995/22995]
und
# wget http://apache.mirror.iphh.net/tomcat/tomcat-6/v6.0.35/bin/extras/tomcat-juli.jar -P /tmp --2012-08-03 15:16:43-- http://apache.mirror.iphh.net/tomcat/tomcat-6/v6.0.35/bin/extras/tomcat-juli.jar Resolving apache.mirror.iphh.net... 62.201.161.83, 2001:868:0:182::3 Connecting to apache.mirror.iphh.net|62.201.161.83|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 69183 (68K) [application/java-archive] Saving to: “/tmp/tomcat-juli.jar” 100%[=============================================================================>] 69,183 310K/s in 0.2s 2012-08-03 15:16:43 (310 KB/s) - “/tmp/tomcat-juli.jar” saved [69183/69183]
HINWEIS - Ausgangsseite für die oben genannten Downloads ist nachfolgender Link
HINWEIS - Die Datei /usr/share/java/log4j.jar
auf die der Link
/usr/share/tomcat6/lib/log4j.jar
zeigt, ist Bestandteil der rpm-Pakete
log4j-1.2.14-6.4.el6.x86_64
-64-bit-Variante
tomcat6-lib-6.0.24-45.el6.noarch
und sollte durch die Installation der oben genannten rpm-Pakete bereits vorhanden sein.
Installation
Die wie unter Apache Tomcat 6 - Logging - log4j - Herunterladen beschrieben, heruntergeladenen Dateien müssen nun in die Verzeichnisstruktur des Apache Tomcat kopiert werden, was mit nachfolgenden Befehlen durchgeführt werden kann:
tomcat-juli-adapters.jar
Die heruntergeladene Datei /tmp/tomcat-juli-adapters.jar
, kann mit nachfolgendem Befehl in das Verzeichnis ($CATALINA_HOME/lib
) bzw.
/usr/share/tomcat6/lib
kopiert werden:
# mv /tmp/tomcat-juli-adapters.jar /usr/share/tomcat6/lib
Anschließend sollten die Besitzrechte mit nachfolgendem Befehl auf root:root
gesetzte werden:
# chown root:root /usr/share/tomcat6/lib/tomcat-juli-adapters.jar
tomcat-juli.jar
Ein bisschen aufwendiger ist das unterbringen der heruntergeladenen Datei /tmp/tomcat-juli.jar
, da diese normalerweise vorhanden ist, und ersetzt werden muss.
Zuerst sollte mit nachfolgendem Befehl in das Verzeichnis
/usr/share/tomcat6/bin
gewechselt werden:
# cd /usr/share/tomcat6/bin
Hier besteht ein Link mit dem Namen tomcat-juli.jar
, was mit nachfolgendem Befehl überprüft werden kann:
# ls -la total 64 drwxr-xr-x 2 root root 4096 Jul 11 10:29 . drwxrwxr-x 4 root root 4096 Jul 11 10:29 .. -rw-rw-r-- 1 root root 21955 Jun 22 16:56 bootstrap-6.0.24.jar lrwxrwxrwx 1 root root 20 Jul 11 10:29 bootstrap.jar -> bootstrap-6.0.24.jar -rw-rw-r-- 1 root root 2374 Jun 22 16:55 catalina-tasks.xml -rw-rw-r-- 1 root root 25782 Jun 22 16:56 tomcat-juli-6.0.24.jar lrwxrwxrwx 1 root root 22 Jul 11 10:29 tomcat-juli.jar -> tomcat-juli-6.0.24.jar
* Bitte die letzte Zeile beachten
Dieser Link kann mit nachfolgendem Befehl gelöst/gelöscht werden:
# unlink /usr/share/tomcat6/bin/tomcat-juli.jar
Um anschließend die heruntergeladene Datei /tmp/tomcat-juli.jar
mit nachfolgendem Befehl in das Verzeichnis ($CATALINA_HOME/bin
) bzw.
/usr/share/tomcat6/bin
zu kopieren:
# mv /tmp/tomcat-juli.jar /usr/share/tomcat6/bin
Anschließend sollten die Besitzrechte mit nachfolgendem Befehl auf root:root
gesetzte werden:
# chown root:root /usr/share/tomcat6/bin/tomcat-juli.jar
HINWEIS - Der Grund für diese Vorgehensweise ist, das im Verzeichnis
/usr/share/tomcat6/lib
ein Link auf die Datei
/usr/share/tomcat6/bin/tomcat-juli.jar
verwendet wird!
Dies kann mit nachfolgendem Befehl überprüft werden:
# ls -la /usr/share/tomcat6/lib/tomcat-juli.jar lrwxrwxrwx 1 root root 38 Jul 11 10:29 /usr/share/tomcat6/lib/tomcat-juli.jar -> /usr/share/tomcat6/bin/tomcat-juli.jar
Konfiguration
Abschließend muss für den Einsatz von log4j für die Verwendung in eigenen Log-Dateien des Apache Tomcat ein wenig Konfigurationsarbeit geleistet werden.
logging.properties
Da die Konfigurationsdatei ($CATALINA_HOME/conf/logging.properties
) bzw.
/usr/share/tomcat6/conf/logging.properties
für den Einsatz mit tomcat-juli.jar
in der gekürzten Version gedacht ist, wird diese nicht weiter benötigt, und kann gelöscht bzw. unbrauchbar gemacht werden, in dem diese Konfigurationsdatei mit nachfolgendem Befehl umbenannt wird:
# mv /usr/share/tomcat6/conf/logging.properties /usr/share/tomcat6/conf/logging.properties.orig
log4j.properties
Nun muss noch im Verzeichnis
/usr/share/tomcat6/lib
die Konfigurationsdatei
log4j.properties
zur Nutzung von log4j erstellt werden, was mit nachfolgendem Befehl durchgeführt werden kann:
# vim /usr/share/tomcat6/lib/log4j.properties
Der Inhalt der Konfigurationsdatei /usr/share/tomcat6/lib/log4j.properties
, kann wie nachfolgend dargestellt aussehen:
log4j.rootLogger=INFO, CATALINA # Define all the appenders log4j.appender.CATALINA=org.apache.log4j.DailyRollingFileAppender log4j.appender.CATALINA.File=${catalina.base}/logs/catalina.out log4j.appender.CATALINA.Append=true log4j.appender.CATALINA.Encoding=UTF-8 # Roll-over the log once per day log4j.appender.CATALINA.DatePattern='.'yyyy-MM-dd'.log' log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n log4j.appender.LOCALHOST=org.apache.log4j.DailyRollingFileAppender log4j.appender.LOCALHOST.File=${catalina.base}/logs/localhost.log log4j.appender.LOCALHOST.Append=true log4j.appender.LOCALHOST.Encoding=UTF-8 log4j.appender.LOCALHOST.DatePattern='.'yyyy-MM-dd'.log' log4j.appender.LOCALHOST.layout = org.apache.log4j.PatternLayout log4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%n log4j.appender.MANAGER=org.apache.log4j.DailyRollingFileAppender log4j.appender.MANAGER.File=${catalina.base}/logs/manager.log log4j.appender.MANAGER.Append=true log4j.appender.MANAGER.Encoding=UTF-8 log4j.appender.MANAGER.DatePattern='.'yyyy-MM-dd'.log' log4j.appender.MANAGER.layout = org.apache.log4j.PatternLayout log4j.appender.MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n log4j.appender.HOST-MANAGER=org.apache.log4j.DailyRollingFileAppender log4j.appender.HOST-MANAGER.File=${catalina.base}/logs/host-manager.log log4j.appender.HOST-MANAGER.Append=true log4j.appender.HOST-MANAGER.Encoding=UTF-8 log4j.appender.HOST-MANAGER.DatePattern='.'yyyy-MM-dd'.log' log4j.appender.HOST-MANAGER.layout = org.apache.log4j.PatternLayout log4j.appender.HOST-MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Encoding=UTF-8 log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n # Configure which loggers log to which appenders log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=INFO, LOCALHOST log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager]=INFO, MANAGER log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager]=INFO, HOST-MANAGER
Neustart Apache Tomcat
Zur Aktivierung der durchgeführten Änderungen, sollte ein Neustart des Apache Tomcat durchgeführt werden, was mit nachfolgendem Befehl realisiert werden kann:
# service tomcat6 restart Stopping tomcat6: [ OK ] Starting tomcat6: [ OK ]
Nach erfolgreichem Restart, sollten die Log-Meldungen des nun wie folgt aussehen, hier am Beispeil von /usr/share/tomcat6/logs/catalina.out
(nur relevanter Ausschnitt):
... INFO: Stopping Coyote AJP/1.3 on ajp-127.0.0.1-8009 2012-08-03 16:01:27,318 [main] INFO org.apache.catalina.core.AprLifecycleListener- Loaded APR based Apache Tomcat Native library 1.1.22. 2012-08-03 16:01:27,319 [main] INFO org.apache.catalina.core.AprLifecycleListener- APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true]. 2012-08-03 16:01:27,618 [main] INFO org.apache.coyote.http11.Http11AprProtocol- Initializing Coyote HTTP/1.1 on http-127.0.0.1-8080 2012-08-03 16:01:27,618 [main] INFO org.apache.coyote.ajp.AjpAprProtocol- Initializing Coyote AJP/1.3 on ajp-127.0.0.1-8009 2012-08-03 16:01:27,618 [main] INFO org.apache.catalina.startup.Catalina- Initialization processed in 699 ms 2012-08-03 16:01:27,635 [main] INFO org.apache.catalina.core.StandardService- Starting service Catalina 2012-08-03 16:01:27,635 [main] INFO org.apache.catalina.core.StandardEngine- Starting Servlet Engine: Apache Tomcat/6.0.24 ... 2012-08-03 16:01:36,908 [main] INFO org.apache.coyote.http11.Http11AprProtocol- Starting Coyote HTTP/1.1 on http-127.0.0.1-8080 2012-08-03 16:01:36,948 [main] INFO org.apache.coyote.ajp.AjpAprProtocol- Starting Coyote AJP/1.3 on ajp-127.0.0.1-8009 2012-08-03 16:01:36,954 [main] INFO org.apache.catalina.startup.Catalina- Server startup in 9335 ms