4.5.5.4. 로그 메시지의 원인으로 예외를 지정합니다.

JBoss Logging Tools를 사용하면 메시지의 원인으로 사용자 지정 로깅 방법 매개 변수를 하나 정의할 수 있습니다. 이 매개 변수는 Throwable 유형 또는 하위 클래스 중 하나여야 하며 @cause 주석으로 표시됩니다. 이 매개변수는 다른 매개변수와 마찬가지로 로그 메시지에서 참조할 수 없으며 로그 메시지 뒤에 표시됩니다.

다음 절차에서는 @ causes 매개 변수를 사용하여 "causing" 예외를 나타내는 로깅 방법을 업데이트하는 방법을 보여줍니다. 이 기능을 추가하려는 국제화된 로깅 메시지가 이미 생성되었다고 가정합니다.

로그 메시지의 원인으로 예외를 지정합니다.

  1. Throwable 또는 하위 클래스 유형의 매개 변수를 메서드에 추가합니다.

    @LogMessage
    @Message(id=404, value="Loading configuration failed. Config file:%s")
    void loadConfigFailed(Exception ex, File file);
  2. @ causes 주석을 매개 변수에 추가합니다.

    import org.jboss.logging.annotations.Cause
    
    @LogMessage
    @Message(value = "Loading configuration failed. Config file: %s")
    void loadConfigFailed(@Cause Exception ex, File file);
  3. 메서드를 호출합니다. 코드에서 메서드를 호출하면 올바른 유형의 오브젝트를 전달해야 하며 로그 메시지 뒤에 표시됩니다.

    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)