2012-12-29 11 views
8

Ich bin gerade dabei, von Log4j auf Logback umzusteigen, aber ich habe noch keinen Erfolg damit Logback funktioniert. Ich habe logback.xml im Stammverzeichnis meiner Eclipse-Java-Projekt gelegt und unten ist sein Inhalt:Logback in Eclipse konfigurieren

<configuration> 

    <appender name="FILE" class="ch.qos.logback.core.FileAppender"> 
    <file>myApp.log</file> 

    <encoder> 
     <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern> 
    </encoder> 
    </appender> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
    <encoder> 
     <pattern>%msg%n</pattern> 
    </encoder> 
    </appender> 

    <root level="debug"> 
    <appender-ref ref="FILE" /> 
    <appender-ref ref="STDOUT" /> 
    </root> 
</configuration> 

Und unten ist der relevante Inhalt meiner Main.java:

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 
public class Main 
{ 
    static final Logger logger = LoggerFactory.getLogger(Main.class); 

    public static void main(String[] args) 
    { 
    logger.info("Main started"); 
    } 
} 

Dies scheint nicht zu funktionieren Da keine Datei mit dem Namen myApp.log im Stammverzeichnis meiner Eclipse-Java-Anwendung erstellt wird. Irgendeine Idee, was ich falsch mache?

Antwort

8

Die Konfigurationsdatei muss sich im Klassenpfad befinden. Meine Vermutung ist, dass es nicht ist. Überprüfen Sie den Erstellungspfad für das Projekt.

+0

hat es funktioniert. danke – Arya

+2

Für maven hilft es, die Datei zu ** src/main/resources ** nach diesem [Hinweis] zu verschieben (http://logback.10977.n7.nabble.com/Project-Can-t-Find-logback-xml -file-td3442.html) – lony

+0

Außerdem bedeutet "auf dem Klassenpfad", dass das * Verzeichnis * (Pfad) zu der Datei auf dem Klassenpfad ist. Beispiel: 'CLASSPATH ="/foo:/goo:/foo/bar "' findet die Datei '/ foo/bar/logback.xml' im Klassenpfad. –