У меня проблема с logback. Я установил его (используя maven), и все кажется прекрасным, за исключением того, что отчеты журнала не могут найти файл конфигурации (но я могу войти в консоль, используя конфигурацию регистратора по умолчанию).Logback не может найти logback.xml, хотя он существует (по пути к классам)
[# | 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; | | | | | | | | | | | | | | | | | | | | ch.qos.logback.classic.LoggerContext [default] - Не удалось найти ресурс [logback-test.xml]
07: 54: 39,844 | -INFO в ch.qos.logback.classic.LoggerContext [по умолчанию] - Не удалось найти ресурс [logback.xml]
07: 54: 39,847 | -INFO в ch.qos.logback.classic.LoggerContext [по умолчанию] - настройка конфигурации по умолчанию. | #]
Я положил конфигурационный файл (называется logback.xml) в src/main/resources
папку моего Maven артефакта (который является WAR). Интересно, если я пытаюсь загрузить конфиг из пути к классам, мне удастся:
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);
который печатает мой конфигурационный файл примера:
[#|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>|#]
Мои pom.xml
имеет следующие данные:
<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>
Которая упакована в виде файла WAR (внутри файла EAR). Расположение файла logback.xml внутри WAR-файла выглядит следующим образом: WEB-INF/classes/logback.xml
Есть ли у кого-нибудь идеи, что случилось с моей настройкой?
Большое спасибо за вашу помощь
stupidSheep
Вы уверены, что используете logback из своей войны, а не с сервера приложений? –