Servlet log4j : logDatei angeben

Diskutiere log4j : logDatei angeben im Web Tier Bereich.
reibi

reibi

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
 
reibi

reibi

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
 
turtle

turtle

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.
 
reibi

reibi

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?
 
turtle

turtle

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)
 
reibi

reibi

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.
 
reibi

reibi

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
 
reibi

reibi

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 ;)
 
turtle

turtle

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 ;)
 
F

freez

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.
 
reibi

reibi

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
Klaro ;-) Meinte nur das Verzeichnis .. ich hab natürlich ne eigene logdatei

gruss und schönen Abend
 
Thema: 

log4j : logDatei angeben

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben