Campusmanagement

Campusmanagement an der FAU

Inhalt

Log4j Runtime Reloading

Einleitung
In diesem Blogeintrag werde ich zeigen, wie man die in einer J2EE Umgebung die Log4j Konfiguration von Servlet Container und deplolyten Webapps zur Laufzeit — also ohne Neustart oder Redeploy — neu einlesen kann.

Log4j bietet zu diesem Zweck bereits zwei Methoden an, die jeweils in den Klassen PropertyConfigurator bzw. DOMConfigurator zu finden sind. Diese sind für unsere Zwecke allerdings nicht geeignet (von der Benutzung wird vielerorts abgeraten), da sie einen eigenen Thread starten, welcher die log4j.properties bzw. log4j.xml auf Änderungen hin überwacht.
Das starten von Threads ist in J2EE Umgebungen jedoch verboten, da diese in der Regel nicht ordnungsgemäß beendet werden und zu Speicherlöchern führen.

JBoss und Tomcat7 erkennen Änderungen an ihrer eigenen Log4j Konfiguration bereits von Haus aus. Die Live Konfiguration von Webapps wird aber nicht unterstützt.
Aus diesem Grund und für Tomcat Versionen kleiner 7.0 bleibt die diese Lösung deshalb totzdem sinnvoll.

Weiterlesen

Tomcat XCS – Cross context sessions

Einleitung
Das mein campus Projekt fasst mehrere eigenständige Webapplikationen unter einer Plattform zusammen. Oft werden die einzelnen Anwendungen sogar von unterschiedlichen Personen eigenständig entwickelt oder kommen von externen Entwicklern. Daher ist es wichtig, die Verschränkung der Anwendungen so gering wie möglich zu halten und so den Grad der nötigen Koordination unter den Entwicklern zu minimieren.
Das fördert die schnelle Entwicklung und erleichtert später die Wartbarkeit des Gesamtsystems.

Weiterlesen

Konflikte: Log4j SMTPAppender und mail.jar im Tomcat

Wie sich herrausstellte bietet das Verwenden der Javax Mail Library im Tomcat einiges Konfliktpotential.
Nach der Umstellung des Tomcat auf Log4j sollte nun zusätzlich auch der SMTPAppender zum Versenden verschiedener Logmeldungen genutzt werden. Als Abhängigkeiten ergaben sich dadurch die beiden JARs mail.jar und activation.jar, welche im Tomcat common libs Verezichnis bereitgestellt werden müssen.

Soweit so gut.

Nach dem Kopieren der beiden JARs ins Tomcat lib Verzeichnis ergab sich Folgendes beim Versenden der ersten Logmeldung via SMTPAppender folgender Fehler:
Weiterlesen

Log4j SMTP Appender — aufgebohrt

Nach dem Umstellen des Tomcat auf farbcodiertes Logging ist zwar deutlich mehr Übersicht erreicht worden, aber die meiste Zeit sitzt man ja eher nicht vor dem PC und verfolgt alle Logausgaben um etwaige Fehler- oder Statusmeldungen mitzubekommen.

Daher wurde als weitere Verbesserung der Log4j SMTP Appender herangezogen.
Dieser ermöglicht es einen zusätzlichen Appender zu konfigurieren, um bestimmte Logmeldungen zusätzlich auch per Mail zu versenden.

Weiterlesen

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
Weiterlesen