2017-12-04 29 views
1

log4j와 함께 slf4j를 사용하고 있습니다. , SLF4J FAQLog4j 예외가 마지막 인수로 전달 된 경우 유효성 검사

SLF4J API는 예외의 존재 매개 변수화를 지원에 언급 된 예외를 가정하면 마지막 매개 변수이므로

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-api</artifactId> 
    <version>1.7.5</version> 
</dependency> 
<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-log4j12</artifactId> 
    <version>1.7.5</version> 
</dependency> 
<dependency> 
    <groupId>log4j</groupId> 
    <artifactId>log4j</artifactId> 
    <version>1.2.17</version> 
</dependency> 

- 내 POM 의존성은 다음과 같습니다. A의

예외가 모든 로거의 메소드 호출 (같은이 error, info)에 마지막 인수로 전달되는 경우 식별 할 수있는 방법이?

+0

예를 들어 API를 사용하여 전달하는 사람은> -> 입니다.} catch (Exception e) { String message = "이것은 예제입니다"; logger.error (message, e); }' – Miles

+0

예. 나는 꽤 큰 레거시 코드 기반을 연구 중이다. 그래서 예외가 마지막 인수로 전달되지 않은 로거 호출이있는 경우 최적으로 식별하는 방법을 찾고 있습니다. 나는 내가 구하려고하는 것을 분명히하기를 희망한다. 기본적으로 로거의 의미론 호출을 확인하는 방법을 찾고 있습니다. – tuk

+0

어디서 유효합니까? 당신의 IDE에서? – rgoers

답변

2

컴파일 타임에 또는 런타임에 이러한 종류의 검사를 수행하는 간단한 방법은 없습니다.

플러그인과 findbugs-slf4j 플러그인을 조합하여 SLF4J_PLACE_HOLDER_MISMATCHSLF4J_FORMAT_SHOULD_BE_CONST으로 정적으로 확인할 수 있습니다.