2014-09-25 3 views
1

내 프로젝트에 log4j가 추가되어 제대로 디버그 할 수 있습니다. 하지만 로그 수준을 INFO 이상으로 설정하면 디버그 수준 로그가 계속 표시됩니다. 여기에 내가 로거를 생성 한 클래스의 부분 :Log4j 레벨이 예상대로 작동하지 않습니다.

public abstract class DefaultDaoImpl<T> implements DefaultDao<T> { 

private EntityManager em; 
private Class<T> classeEntidade; 
private static final Logger logger = Logger.getLogger(DefaultDaoImpl.class); 

public DefaultDaoImpl(Class<T> classeEntidade) { 
    this.classeEntidade = classeEntidade; 
    logger.setLevel(Level.INFO); 
    BasicConfigurator.configure(); 
} 

다음은 로그의 일부가 생성이다 :

2847 [main] DEBUG org.hibernate.engine.jdbc.internal.LogicalConnectionImpl - Releasing JDBC connection 
2847 [main] DEBUG org.hibernate.engine.jdbc.internal.LogicalConnectionImpl - Releasing JDBC connection 
2847 [main] DEBUG org.hibernate.engine.jdbc.internal.LogicalConnectionImpl - Released JDBC connection 
2847 [main] DEBUG org.hibernate.engine.jdbc.internal.LogicalConnectionImpl - Released JDBC connection 
2847 [main] DEBUG org.hibernate.engine.jdbc.internal.LogicalConnectionImpl - Released JDBC connection 
2847 [main] DEBUG org.hibernate.engine.jdbc.internal.LogicalConnectionImpl - Released JDBC connection 

참고 : 디버그 로그는 최대 절전 모드에서왔다. 어쩌면 최대 절전 모드 설정일까요?

답변

0

log4j2를 구성 파일로 구성하고 해당 구성 파일에서 원하는 수준을 지정하는 것이 좋습니다. 다른 것들은 구현 세부 사항에 달려 있으며 log4j2의 최신 버전으로 업그레이드 할 때 코드가 손상 될 수 있습니다.

그렇다면 Manual Configuration의 사용자 설명서 페이지를 살펴보십시오. 중요한 것은 프로그래밍 방식으로 구성을 수정 한 후에 LoggerContext.updateLoggers() 메서드를 호출해야한다는 것입니다.

관련 문제