2013-05-03 3 views
0

저는 메이븐과 함께 Spring MVC 간단한 주소록 프로젝트 빌드를했습니다. 로깅을 위해 Logback을 사용하고 싶지만 완전히 새로운 것입니다. 나는 내 사용자 지정 예외 DatabaseException이 라인을 추가로그백 로깅이 작동하지 않습니다.

다음
<!-- Spring 3 dependencies --> 
<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-context</artifactId> 
    <version>${spring.version}</version> 
    <exclusions> 
    <!--Exclude Commons Logging in favor of SLF4j--> 
    <exclusion> 
     <groupId>commons-logging</groupId> 
     <artifactId>commons-logging</artifactId> 
    </exclusion> 
    </exclusions> 
</dependency> 
<!-- Logging --> 
<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-api</artifactId> 
    <version>1.6.1</version> 
</dependency> 
<dependency> 
    <groupId>ch.qos.logback</groupId> 
    <artifactId>logback-classic</artifactId> 
    <version>${logback.version}</version> 
</dependency> 
<dependency> 
    <groupId>ch.qos.logback</groupId> 
    <artifactId>logback-core</artifactId> 
    <version>${logback.version}</version> 
</dependency> 

: 처음 내 pom.xml 파일이 방법 변경

private final static Logger logger = (Logger) LoggerFactory.getLogger(DatabaseException.class); 

... 그래서

public DatabaseException(Throwable cause) { 
    super(cause); 
    logger.log(Level.WARNING, cause.getMessage()); 
} 

그 때 이 예외는 로그가 일부 메시지를 크게 출력 할 수있는 다른 클래스에서 발생하지만, Tomcat에서 maven을 실행하면 컨테이너 로그 [talledContainer] 정보 ... 등등을 출력합니다. 내 로거가 존재하지 않습니다.

+0

나는 제목이 실수로 –

+0

로거를 구성해야한다고 생각합니다. 대부분의 경우 xml 또는 속성에서 수행됩니다. –

+0

두 가지 질문을 통합하여 중복 된 것을 게시하지 마십시오. 사람들이 당신을 도울 수 없게됩니다. –

답변

1

logback.xml에 대해 언급하지 않았습니다. src/main/resources 폴더 아래에 하나를 만들어야합니다. 당신의 DatabaseException으로

2

당신의 DatabaseException은 다음과 같이해야한다, 그것이 작동합니다

package org.myorg.myapp; 

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

public class DatabaseException extends Exception { 

    private final static Logger logger = LoggerFactory.getLogger(DatabaseException.class); 

    public DatabaseException(Throwable cause) { 
    super(cause); 
    logger.warn(cause.getMessage()); 
    } 
} 

또한, 당신은 당신의 pom.xml에 JCL - 이상 - SLF4J 의존성을 포함해야합니다.

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>jcl-over-slf4j</artifactId> 
    <version>1.6.1</version> 
    <scope>runtime</scope> 
</dependency> 

참조 문서 (SLF4J 사용 섹션)를 읽는 것이 좋습니다. http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/overview.html

희망이 있습니다.

+0

답장을 보내 주셔서 대단히 감사합니다. – andPat

+0

jlc 종속성을 추가하고 slf4j.logger 및 slf4j.LoggerFactory 클래스를 가져 오는 것이 좋습니다. – andPat

+0

감사합니다. 좋은 해결책입니다. 내 프로젝트도 작동합니다 ... – Vito

관련 문제