2014-11-18 3 views
2

현재 학교 프로젝트 용 웹 사이트를 개발 중이며 로깅과 관련된 문제가 있습니다. 나는 logback을 사용하여 나의 물건을 기록하고 싶다. 그러나 내 Wildfly 서버가 내 로그백 구성 파일 (logback.xml)을 인식하지 못합니다.Wildfly 8.1에서 logback.xml을 찾을 수 없음 - 기본 설정을 사용합니다.

Logback.xml이

src/main/resources/logback.xml 

내 logback.xml에 위치는 다음과 같습니다

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
<appender name="fileAppender" class="ch.qos.logback.core.FileAppender"> 
    <file>myLogFile.log</file> 
    <append>true</append> 
    <encoder> 
     <pattern>%d [%thread] %-5level %logger{35} - %msg%n</pattern> 
    </encoder> 
</appender> 

<root level="TRACE"> 
    <appender-ref ref="fileAppender" /> 
</root> 
</configuration> 

내 pom.xml 파일은 다음과 같습니다

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-api</artifactId> 
    <version>1.6.6</version> 
</dependency> 
<dependency> 
    <groupId>ch.qos.logback</groupId> 
    <artifactId>logback-classic</artifactId> 
    <version>1.0.7</version> 
</dependency> 
<dependency> 
    <groupId>ch.qos.logback</groupId> 
    <artifactId>logback-core</artifactId> 
    <version>1.0.7</version> 
</dependency> 

를 작성 로그 나는 이렇게한다 :

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 

public class MyClass { 
    private static final Logger logger = LoggerFactory.getLogger(MyClass.class); 

    public void someMethod(){ 
    logger.debug("Dummy debug message."); 
    logger.info("Dummmy info message."); 
    logger.warn("Dummy warning message."); 
    logger.error("Dummy error message."); 
    } 
} 

하나는 다음과 유사한 입력으로 파일을받을 것이라고 생각한다 :

2014-11-18 02:10:13,295 [main] DEBUG com.example.package.ClassName - Dummy debug message. 
2014-11-18 02:10:13,295 [main] INFO com.example.package.ClassName - Dummy info message. 
2014-11-18 02:10:13,296 [main] WARN com.example.package.ClassName - Dummy warning message. 
2014-11-18 02:10:13,296 [main] ERROR com.example.package.ClassName - Dummy error message. 

내가하지 않습니다.

[0m02:22:49,489 INFO [com.example.package.MyClass] (default task-4) Dummy info message. 
[0m[33m02:22:49,489 WARN [com.example.package.MyClass] (default task-4) Dummy warning message. 
[0m[31m02:22:49,490 ERROR [com.example.package.MyClass] (default task-4) Dummy error message. 

이것은 또한 다음과 같은 위치에 serverlog에 저장되는 : 대신 내가 내 터미널에서 다음을 얻을

/wildfly-8.1.0.Final/standalone/log/server.log 

나는 또한 내 logback.xml가에 포함되어 있는지 확인 해요 클래스 경로. 이 파일은 다음 위치에 있습니다.

/target/classes/logback.xml 

내 서버에 .war 파일을 만들고 배포 한 후에는 내 구성 파일이 로그백에 사용될 것으로 예상됩니다. 그러나 그렇지 않습니다. 오히려 그것의 기본 wildfly-logger-format (또는 기본 logback 아마? 어느 쪽이든, 내 설정이 아닌)이 사용 중이며 파일이 생성되지 않습니다.

Logback.xml을 제거 할 수도 있습니다. 실제로는 아무런 차이가 없습니다. 나는 나 자신의 삶을 위해 여기서 무엇이 잘못 됐는지를 판단 할 수 없다. wildfly가 클래스 경로에 지정된 logback.xml을 사용하지 않는 이유는 무엇입니까? 어떤 도움이라도 대단히 감사하겠습니다!

답변

1

서버 로깅 종속성을 exclude으로 설정하거나 로깅 하위 시스템을 jboss-deployment-structure.xml에서 제거해야합니다.

문제는 slf4j가 jboss-logmanager에 바인딩을 제공하는 서버를 찾는 바인딩을 찾습니다. 서버에서 제공하는 slf4j 로깅 종속성이 배포에 추가되지 않도록해야합니다.