Servlet log4j : logDatei angeben

Hallo

Ich möchte in meinem Servlet ganz normal log4j mit properties-File benutzen.

In Konsolenanwendungen mach ich das ja so

Java:
log4j.appender.F.File=log/myprg.log
Dann schreibt er das logfile einfach aufs Filesystem.

Was isn n guter weg in nem Servlet?
Im Tomcat gits n "logs"-verzeichnis. Gibts das bei anderen ServletEngines auch und sollte das benutzt werden?

Oder is n anderer Ansatz eher besser?

Gruss
 
M

maki

In Tomcat kannst du dafür die variable catalina.home nutzen, ohne Tomcat leider nicht.. stört imho in Tests.
Code:
log4j.appender.R.File=${catalina.home}/logs/tomcat.log
 
Danke funktioniert prima ;-)

Das mit den tests find ich auch doof und nochwas:
Die gebuildete Webapplikation ist dann plattformabhängig - der build hängt an Tomcat. Es kann nihct in nem glassfisch oder webslogic laufen ohne umgebuildet zu werden ... oder man braucht n hack in dem man das warfile aufmacht und die infos ändert.

Für n standard-produkt, welches NICHT für eine bestehende Umgebung gebuildet wird ist das sehr schlecht.
Das Konzept hat da Schwächen

Trotzdem Danke und Gruss
 
Ich habe den Eindruck, dass hier das Logging vom Container (z.B. Tomcat, Glassfish, ...) mit dem der Webapplikation zusammengebracht (verwechselt) wird?

Das Looging des Containers ist "natürlich" spezifisch für den Container und für Tomcat gut hier beschrieben.

Das Logging einer Webapplikation sollte vom Container-Logging unterschieden werden!

Daher kannst Du zum Beispiel log4j in Deiner Webapplikation einrichten und im WEB-INF/lib Verzeichnis die Jar-Datei und die Log4J Konfiguration in WEB-INF/classes hinterlegen. Dadurch kommen die verschiedene Logging-Frameworks sich nicht in die Quere.
 
IIch habe den Eindruck, dass hier das Logging vom Container (z.B. Tomcat, Glassfish, ...) mit dem der Webapplikation zusammengebracht (verwechselt) wird?
Es ging ja ums verzeichnis ..ja?!

und zwar um das hier : "${catalina.home}/logs/myapp.log"

Egal ob tomcat-manager, artifactory oder Deine eigene app sollte ja dort rein loggen ... oder?
 
Egal ob tomcat-manager, artifactory oder Deine eigene app sollte ja dort rein loggen ... oder?
Da bin ich anderer Meinung.

Ich finde gut, wenn die Applikation in ihr eigenes Verzeichnis loggt, weil ich da als Erstes reinschaue (und nicht in Tomcat/logs um dann rauszufummeln in welche Datei die Applikation gelogged hat)
 
Ich finde gut, wenn die Applikation in ihr eigenes Verzeichnis loggt
und in welches in deinem Beispielfall?

Also in dem Fall hat man natürlich keine Abhängigkeiten zum Container .. das ist klar!
Aber man muss extra ne Verzeichnisstruktur anlegen und konfigurierenm, nachdem man die webapp in den Container deployed hat.

gruss
 
M

maki

Man kann ja auch unter ${catalina.home}/logs/ für jede WebApp eine eigene (oder gar 2? ;)) Logdateien schreiben...

@turtle
Was meinst du denn mit "die Applikation in ihr eigenes Verzeichnis"?
WebApps haben kein "eigenes Verzeichnis" von Haus aus im eigentlichen Sinne, es ist nciht garantiert dass das war Archiv entpackt wird und man auf den Pfad zugriff hat.
 
Eine eigene log4j-Konfiguration heisst aber noch nicht n anderes verzeichnis.(laut KONVENTION)

Wenn Du undeploy machst, sind Deine logs weg!

Ich kenne Dein problem, läuft mir auch ab und zu über den Weg ;-) und nicht nur beim loggen

gruss
 
Ich log trotzdem in den Container-log. Das machen alle wewbapps so, die ich kenne. Auch tomcat-manager und artifactory
und wieSeAlleHeißen ;-)
 
M

maki

Mind. eine eigene Logdatei, oder besser 2 (eine für alle, und eine nur für Error) sollten es schon sein, ausser du willst deine Logeinträge mit der Lupe suchen ;)
 
Habe das gefunden und da gibt es für jede Meinung mindestens einen Fürsprecher. Also richtet Euch das Logging so ein, wie Ihr wollt ;)
 
Ich meine mich zu erinnern, dass Tomcat automatisch alle STDOUT und STDERR log Ausgaben in seine log Files schiebt? Vielleicht wäre das ein Weg, nur dass man den Ablageort nicht beeinflussen kann ... bzw. evtl. in den Configfiles vom Tomcat.
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben