4.5.5.3. 매개 변수를 사용하여 로그 메시지 사용자 지정
사용자 지정 로깅 방법은 매개 변수를 정의할 수 있습니다. 이러한 매개 변수는 로그 메시지에 표시할 추가 정보를 전달하는 데 사용됩니다. 로그 메시지에 매개 변수가 표시되는 위치는 명시적 또는 일반 인덱싱을 사용하여 메시지 자체에 지정됩니다.
매개 변수를 사용하여 로그 메시지 사용자 지정
- 모든 유형의 매개 변수를 메서드 정의에 추가합니다. 유형에 관계없이 매개 변수의 String 표시는 메시지에 표시됩니다.
로그 메시지에 매개 변수 참조를 추가합니다. 참조는 명시적 또는 일반 인덱스를 사용할 수 있습니다.
-
일반 인덱스를 사용하려면 각 매개 변수를 표시하려는 메시지 문자열에
%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);