Tomcat log4j: ConsoleAppender zu RollingFileAppender

jtc

Grünschnabel
Hallo zusammen,

ich nutze Tomcat 6 und habe diesen bereits wie in der Doku auf log4j umgestellt. Das funktioniert soweit auch ganz gut. Nur eine Sache will einfach nicht funktionieren:

In den Java-Projekten die im Tomcat 6 lauf nutze ich auch log4j um meine Logmeldungen auszugeben. Diese werden mit dem "org.apache.log4j.ConsoleAppender" Appender auf die Konsole ausgegeben.

Dies hat für mich den Vorteil, dass ich während der Entwicklung (NetBeans) die Ausgaben des Tomcats (wenn ich im NetBeans Projekt auf "Run" gehe) direkt in der Konsole von NetBeans sehe und bei Exceptions auch "klicken" kann um sofort zu passenden Code-Stelle zu kommen.

Nun möchte ich aber, dass wenn die Anwendung ohne NetBeans im Hintergrund läuft (also direkt im Tomcat) die Ausgaben nicht wie in der Standardeinstellung in eine Log-Datei geschrieben werden, sondern einen RollingFileAppender (z.B.), da mich sonst die Anzahl & Größe der Logdateien irgendwann erschlägt.


Leider habe ich es nicht geschafft im Tomcat per log4j Konfiguration die Ausgaben der "Konsole" in einen RollingFileAppender zu stecken.

Direkt im Tomcat (nutze den unter Windows) kann man bei "stdout" eine Log-Datei einstellen oder "auto" eintragen. Mehr leider nicht.



Mir ist durchaus bewusst, dass es schöne wäre wenn meine Anwendung direkt einen RollingFileAppender benutzt, aber ich wollte den "Luxus" der NetBeans Konsole nicht aufgeben.


Weis jemand wie die log4j Einstellung für den Tomcat lauten muss, damit er wirklich alle "Konsolen" Ausgaben (stdout) in einen RollingFileAppender schreibt?

Bzw. wie habt ihr das evtl. gelöst? Tauscht ihr jedes mal die log4j Konfiguration aus, bzw. lasst ihr diese über ein Build-Skript automatisch tauschen?


Vielen Dank!
 
Zurück