Log4j with Spring

Diskutiere Log4j with Spring im Application Tier Bereich.
G

Generic1

Hi,

hätte noch eine Frage zu Spring und log4j,
Ich habe in meinem /WEB-INF/classes folgende log4j.properties:

[XML]
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p %c - %m%n
log4j.rootLogger=INFO, stdout
log4j.logger.org.springframework=INFO
[/XML]

Ich weiß jetzt zu meiner Schande nicht, wie ich einstellen kann, dass mir ein log- file angelegt wird und dass in dieses Log- File geschrieben wird. Vom Code aus kann ich ja mit org.apache.log4j.Logger.getRootLogger() auf einen Logger zugreifen, der dann in das File schreibt, aber wie das File angelegt wird ist mir nicht klar.
Besten Dank!!
lg
 
M

mvitz

Code:
log4j.rootLogger=INFO, file

log4j.logger.org.springframework=INFO

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=example.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d %p %c - %m%n
 
G

Generic1

Besten Dank, also file statt stdout.
Wahrscheilich eine blöde Frage aber kann ich da statt file den Pfad auch hinschreiben oder macht man das anders, z.B.: dass man file irgendwo definiert (k.a. wo man file eigentlich definieren könnte:-()
 
G

Generic1

OK, hab wieder ein bisschen gelesen und herumgespielt. Ich hab jetzt folgende Konfiguration, es wird mir auch eine logdatei unter c:/ angelegt aber wenn ich im Code folgendes schreibe:

Java:
Logger.getRootLogger().log(Level.INFO, "beforeMethodInvokation in LoggingAdvice");
oder
Logger.getLogger(LoggingAdvice.class).log(Level.INFO, "asdsadfdafss");
wird nichts in das LogFile geschrieben.
Weoß jemand was ich da noch falsch mache?

lg
Generic1

Code:
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p %c - %m%n
log4j.rootLogger=INFO, file
log4j.logger.org.springframework=INFO

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:/mylog4j.log
log4j.appender.file.MaxFileSize=100KB
# Eine Backup-Datei behalten
log4j.appender.file.MaxBackupIndex=1
 
tagedieb

tagedieb

Days könnte daran liegen, dass Log4j nicht immer sofort in die datei schreibt, sondern erst nach ein paar Einträgen. Schau mal in der Konfiguration nach. Es müsste ein flag gesetzt werdn können damit log4j sofort schreibt.
 
M

mvitz

Besten Dank, also file statt stdout.
Wahrscheilich eine blöde Frage aber kann ich da statt file den Pfad auch hinschreiben oder macht man das anders, z.B.: dass man file irgendwo definiert (k.a. wo man file eigentlich definieren könnte:-()
file anstatt stdout ist nicht richtig.

Der bedeutende Unterschied ist der Einsatz von verschiedenen Appendern (hier FileAppender anstelle von ConsoleAppender).

file und stdout sind in dem Beispiel dann lediglich die Namen des jeweiligen Appenders.

Deine Fragestellung deutet übrigens darauf hin, dass du von Logging Frameworks noch wenig Ahnung hast, hier würde ich dir empfehlen Apache log4j 1.2 - Short introduction to log4j zu lesen und in einer kleinen Anwendung zu probieren.
 
Thema: 

Log4j with Spring

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben