Tomcat Logging



wstuermer

Active Member
Hallo,

hat einer eine funktionelle Lösung um Tomcat 5.5 per rsyslogd loggen zu lassen - und zwar _nur_ via syslog. Also Loggingmodul wird log4j und als Handler juli eingesetzt, was aber trotz folgender ${CATALINA_BASE}/common/classes/log4j.properties absolut nichts nach /var/log/syslog schreibt.

Code:
log4j.rootLogger=TRACE,SYSLOG
log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender
log4j.appender.SYSLOG.SyslogHost=127.0.0.1
log4j.appender.SYSLOG.facility=LOCAL1
log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.SYSLOG.layout.ConversionPattern=%-4r %-5p %c {2} %M. %L %x - %m\n


Mit anderen möglichen Logleveln ebenfalls keine Änderung nach Neustart des Tomcat. Die Facility in der syslog-config abgegriffen, schreibt dann logischerweise auch nirgendwo anders hin.


Weiterhin stellt sich die Frage, ob ich die applikationsbasierten Loggingmöglichkeiten deaktivieren kann, sodass unabhängig der Konfigurationen innerhalb der Applikationen die globale Loggingconfig greift.



Schöne Grüße
Wolfgang
 
Hallo Wolfgang,

die syslog gehört User root Gruppe root, wenn also der Tomcat Dämon nicht in der Systemgruppe root ist, kann er auch keine Daten in der syslog schreiben. Ich denke hier ist der Fehler in den File Permissions zu suchen.

Allerdings hat Tomcat ja mit der catalina.out schon eine sehr gute Log Variante, wieso das ändern? Immerhin sorgt es für eine gewisse Übersicht im Log Chaos.


Schöne Grüße

Michael
 
Der Tomcat soll ja nicht ins syslog schreiben, sondern an den rsyslogd übergeben, damit der das Logging nach Syslog und je nach Facility und Level in weitere Dateien übernimmt.

Die catalina.out ist mir zu unübersichtlich, da da ja wirklich alles landet. Das wäre u.U. mit entsprechendem Loglevel noch tragbar, allerdings lässt die catalina.out sich nicht durch logrotate oder den Tomcat-internen Rotator behandeln, ohne den Tomcat neuzustarten. Tomcat-Neustart ist allerdings ein No-Go.
 
hat einer eine funktionelle Lösung um Tomcat 5.5 per rsyslogd loggen zu lassen - und zwar _nur_ via syslog.
Ja, gerade nochmal an einem frischen Apache Tomcat 5.5.34 ausprobiert.

[…] absolut nichts nach /var/log/syslog schreibt.
Lauscht dein syslogd überhaupt auf 514/udp?

Weiterhin stellt sich die Frage, ob ich die applikationsbasierten Loggingmöglichkeiten deaktivieren kann, sodass unabhängig der Konfigurationen innerhalb der Applikationen die globale Loggingconfig greift.
Nein, zumindest nicht ohne weiteres.

Die catalina.out ist mir zu unübersichtlich, da da ja wirklich alles landet. Das wäre u.U. mit entsprechendem Loglevel noch tragbar, allerdings lässt die catalina.out sich nicht durch logrotate oder den Tomcat-internen Rotator behandeln, ohne den Tomcat neuzustarten.
Das stimmt so nicht. Du kannst die catalina.out generell deaktivieren (einfach die Umgebungsvariable CATALINA_OUT auf /dev/null setzen) und die Dateien in ./logs/ verwenden, welche nach Datum rotiert werden.

Alternativ kannst du in Logrotate die Option copytruncate verwenden, um dem Apache Tomcat die catalina.out nicht unter dem Hintern wegzuziehen.
 
Back
Top