Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Apache Tomcat 7 - 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.YYYY-MM-DD.out
host-manager.YYYY-MM-DD.log
localhost.YYYY-MM-DD.log
localhost_access_log.YYYY-MM-DD.txt
manager.YYYY-MM-DD.log
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.openmirror.de/tomcat/tomcat-7/v7.0.61/bin/extras/tomcat-juli-adapters.jar -P /tmp --2015-05-08 10:38:12-- http://apache.openmirror.de/tomcat/tomcat-7/v7.0.61/bin/extras/tomcat-juli-adapters.jar Resolving apache.openmirror.de (apache.openmirror.de)... 83.246.74.136 Connecting to apache.openmirror.de (apache.openmirror.de)|83.246.74.136|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 31865 (31K) [application/java-archive] Saving to: ‘/tmp/tomcat-juli-adapters.jar’ 100%[======================================>] 31,865 199KB/s in 0.2s 2015-05-08 10:38:12 (199 KB/s) - ‘/tmp/tomcat-juli-adapters.jar’ saved [31865/31865]
und
# wget http://apache.openmirror.de/tomcat/tomcat-7/v7.0.61/bin/extras/tomcat-juli.jar -P /tmp --2015-05-08 10:38:39-- http://apache.openmirror.de/tomcat/tomcat-7/v7.0.61/bin/extras/tomcat-juli.jar Resolving apache.openmirror.de (apache.openmirror.de)... 83.246.74.136 Connecting to apache.openmirror.de (apache.openmirror.de)|83.246.74.136|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 75410 (74K) [application/java-archive] Saving to: ‘/tmp/tomcat-juli.jar’ 100%[======================================>] 75,410 325KB/s in 0.2s 2015-05-08 10:38:40 (325 KB/s) - ‘/tmp/tomcat-juli.jar’ saved [75410/75410]
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/tomcat/lib/log4j.jar
zeigt, ist Bestandteil der rpm-Pakete
log4j-1.2.17-15.el7.noarch
Installation
Die wie unter Apache Tomcat 7 - 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/tomcat/lib
kopiert werden:
# mv /tmp/tomcat-juli-adapters.jar /usr/share/tomcat/lib
Anschließend sollten die Besitzrechte mit nachfolgendem Befehl auf root:root
gesetzte werden:
# chown root:root /usr/share/tomcat/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/tomcat/bin
gewechselt werden:
# cd /usr/share/tomcat/bin
Hier bereits eine Datei mit dem Namen tomcat-juli.jar
, was mit nachfolgendem Befehl überprüft werden kann:
# ls -la /usr/share/tomcat/bin total 148 drwxr-xr-x 2 root root 100 May 8 10:41 . drwxrwxr-x 3 root tomcat 84 May 5 14:50 .. -rw-rw-r-- 1 root tomcat 28684 Mar 6 06:54 bootstrap.jar -rw-rw-r-- 1 root tomcat 2121 Mar 6 06:53 catalina-tasks.xml -rw-r--r-- 1 root root 38700 Mar 6 06:54 tomcat-juli.jar
* Bitte die letzte Zeile beachten
Es empfiehlt sich eine Kopie/Sicherung der originalen Datei /usr/share/tomcat/bin/tomcat-juli.jar
mit nachfolgendem Befehl durchzuführen:
# mv /usr/share/tomcat/bin/tomcat-juli.jar /usr/share/tomcat/bin/tomcat-juli.jar.orig
Um anschließend die heruntergeladene Datei /tmp/tomcat-juli.jar
mit nachfolgendem Befehl in das Verzeichnis ($CATALINA_HOME/bin
) bzw.
/usr/share/tomcat/bin
zu kopieren:
# mv /tmp/tomcat-juli.jar /usr/share/tomcat/bin
Anschließend sollten die Besitzrechte mit nachfolgendem Befehl auf root:root
gesetzte werden:
# chown root:root /usr/share/tomcat/bin/tomcat-juli.jar
Dies kann mit nachfolgendem Befehl überprüft werden:
# ls -la /usr/share/tomcat/lib/tomcat-juli.jar lrwxrwxrwx 1 root root 37 May 5 14:50 /usr/share/tomcat/lib/tomcat-juli.jar -> /usr/share/tomcat/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/tomcat/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/tomcat/conf/logging.properties /usr/share/tomcat/conf/logging.properties.orig
log4j.properties
Nun muss noch im Verzeichnis
/usr/share/tomcat/lib
die Konfigurationsdatei
log4j.properties
zur Nutzung von log4j erstellt werden, was mit nachfolgendem Befehl durchgeführt werden kann:
# vim /usr/share/tomcat/lib/log4j.properties
Der Inhalt der Konfigurationsdatei /usr/share/tomcat/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:
# systemctl restart tomcat.service
Nach erfolgreichem Restart, sollten die Log-Meldungen des Apache Tomcat nun wie folgt aussehen, hier am Beispiel von /usr/share/tomcat/logs/catalina.YYYY-MM-DD.out