4.5.5.4. 로그 메시지의 원인으로 예외를 지정합니다.
JBoss Logging Tools를 사용하면 메시지의 원인으로 사용자 지정 로깅 방법 매개 변수를 하나 정의할 수 있습니다. 이 매개 변수는 Throwable 유형 또는 하위 클래스 중 하나여야 하며 @cause 주석으로 표시됩니다. 이 매개변수는 다른 매개변수와 마찬가지로 로그 메시지에서 참조할 수 없으며 로그 메시지 뒤에 표시됩니다.
다음 절차에서는 @ causes 매개 변수를 사용하여 "causing" 예외를 나타내는 로깅 방법을 업데이트하는 방법을 보여줍니다. 이 기능을 추가하려는 국제화된 로깅 메시지가 이미 생성되었다고 가정합니다.
로그 메시지의 원인으로 예외를 지정합니다.
Throwable또는 하위 클래스 유형의 매개 변수를 메서드에 추가합니다.@LogMessage @Message(id=404, value="Loading configuration failed. Config file:%s") void loadConfigFailed(Exception ex, File file);
@ causes 주석을매개 변수에 추가합니다.import org.jboss.logging.annotations.Cause @LogMessage @Message(value = "Loading configuration failed. Config file: %s") void loadConfigFailed(@Cause Exception ex, File file);
메서드를 호출합니다. 코드에서 메서드를 호출하면 올바른 유형의 오브젝트를 전달해야 하며 로그 메시지 뒤에 표시됩니다.
try { confFile=new File(filename); props.load(new FileInputStream(confFile)); } catch(Exception ex) //in case properties file cannot be read { ConfigLogger.LOGGER.loadConfigFailed(ex, filename); }
다음은 코드에서 유형 FileNotFoundException 을 제외하고 발생하는 경우 위 코드 예제의 출력입니다.
10:50:14,675 INFO [com.company.app.Main] (MSC service thread 1-3) Loading configuration failed. Config file: customised.properties java.io.FileNotFoundException: customised.properties (No such file or directory) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:120) at com.company.app.demo.Main.openCustomProperties(Main.java:70) at com.company.app.Main.go(Main.java:53) at com.company.app.Main.main(Main.java:43)