4.5.5.3. 매개 변수를 사용하여 로그 메시지 사용자 지정

사용자 지정 로깅 방법은 매개 변수를 정의할 수 있습니다. 이러한 매개 변수는 로그 메시지에 표시할 추가 정보를 전달하는 데 사용됩니다. 로그 메시지에 매개 변수가 표시되는 위치는 명시적 또는 일반 인덱싱을 사용하여 메시지 자체에 지정됩니다.

매개 변수를 사용하여 로그 메시지 사용자 지정

  1. 모든 유형의 매개 변수를 메서드 정의에 추가합니다. 유형에 관계없이 매개 변수의 String 표시는 메시지에 표시됩니다.
  2. 로그 메시지에 매개 변수 참조를 추가합니다. 참조는 명시적 또는 일반 인덱스를 사용할 수 있습니다.

    • 일반 인덱스를 사용하려면 각 매개 변수를 표시하려는 메시지 문자열에 %s 문자를 삽입합니다. %s 의 첫 번째 인스턴스는 첫 번째 매개 변수를 삽입하고, 두 번째 인스턴스는 두 번째 매개 변수를 삽입합니다.
    • 명시적 인덱스를 사용하려면 메시지에 %#$s 문자를 삽입합니다. 여기서 #은 표시하려는 매개 변수 수를 나타냅니다.

명시적 인덱스를 사용하면 메시지의 매개 변수 참조가 메서드에 정의된 것과 다른 순서로 표시됩니다. 매개 변수 순서가 다를 수 있는 번역 메시지에는 중요합니다.

중요

매개 변수 수는 지정된 메시지의 매개 변수에 대한 참조 수와 일치해야 합니다. 그렇지 않으면 코드가 컴파일되지 않습니다. @ cause 주석 으로 표시된 매개 변수는 매개변수 수에 포함되지 않습니다.

다음은 일반 인덱스를 사용하는 메시지 매개변수의 예입니다.

@LogMessage(level=Logger.Level.DEBUG)
@Message(id=2, value="Customer query failed, customerid:%s, user:%s")
void customerLookupFailed(Long customerid, String username);

다음은 명시적 인덱스를 사용하는 메시지 매개변수의 예입니다.

@LogMessage(level=Logger.Level.DEBUG)
@Message(id=2, value="Customer query failed, user:%2$s, customerid:%1$s")
void customerLookupFailed(Long customerid, String username);