Log4j with Spring

Dieses Thema Log4j with Spring im Forum "Application Tier" wurde erstellt von Generic1, 8. Juli 2012.

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

  1. 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
     
  2. Vielleicht helfen dir diese Java-Grundlagen weiter --> *Klick*
  3. Code (Text):
    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
     
  4. 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:-()
     
  5. 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:

    Code (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 (Text):

    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
     
     
  6. 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.
     
  7. 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.
     
  8. KOSTENLOSES Java-Grundlagen Training im Wert von 39 € Sichere dir hier den kostenlosen Zugriff auf umfangreiches Java-Know How und starte richtig durch!