Ich habe ein Problem mit dem Logback. Ich habe es eingerichtet (mit Maven) und alles scheint in Ordnung, außer dass Logback meldet, dass es die Konfigurationsdatei nicht finden kann (aber ich kann mich mit der Standard-Logger-Konfiguration an der Konsole anmelden).Logback kann logback.xml nicht finden, obwohl es existiert (im Klassenpfad)
[# | 2013-07-03T07: 55: 30,843 + 0200 | INFO | glassfish3.1.2 | javax.enterprise.system.std.com.sun.enterprise.server.logging | _threadid = 124; _ThreadName = Thread-2; | 07: 54: 39,844 | -INFO in ch.qos.logback.classic.LoggerContext [default] - Konnte keine Ressource finden [logback.groovy]
07: 54: 39,844 | -INFO in ch.qos.logback.classic.LoggerContext [default] - Konnte die Ressource [logback-test.xml] nicht finden
07: 54: 39,844 | -INFO in ch.qos.logback.classic.LoggerContext [Standard] - Konnte die Ressource [logback.xml] nicht finden
07: 54: 39,847 | -INFO in ch.qos.logback.classic.LoggerContext [Standard] - Standardkonfiguration einrichten. | #]
Ich habe die Konfigurationsdatei (genannt logback.xml) in den src/main/resources
Ordner meines Maven Artefakt (was ein Krieg ist). Interessanterweise, wenn ich die Config aus dem Classpath zu laden versuchen, es mir gelingt:
Reader r = new InputStreamReader(getClass().getClassLoader().getResourceAsStream("logback.xml"));
StringWriter sw = new StringWriter();
char[] buffer = new char[1024];
for (int n; (n = r.read(buffer)) != -1;)
sw.write(buffer, 0, n);
String str = sw.toString();
System.out.println(str);
Welche druckt mein Beispielkonfigurationsdatei:
[#|2013-07-03T07:55:30.844+0200|INFO|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=124;_ThreadName=Thread-2;|<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="STDOUT" />
</root> </configuration>|#]
Mein pom.xml
hat folgende Einträge:
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.0.13</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.0.13</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
Die als WAR-Datei (innerhalb einer EAR-Datei) gepackt ist. Der Speicherort der logback.xml in der WAR-Datei ist wie folgt: WEB-INF/classes/logback.xml
Hat jemand eine Idee, was ist falsch mit meinem Setup?
Vielen Dank für Ihre Hilfe
stupidSheep
Sind Sie sicher, dass Sie Logback von Ihrem Krieg und nicht vom Anwendungsserver verwenden? –