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.

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

zeigt, ist Bestandteil der rpm-Pakete

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.

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

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.

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

ein Link auf die Datei

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.

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

die Konfigurationsdatei

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