4.5.3. 국제화된 로거, 메시지 및 예외 생성
4.5.3.1. 국제화된 로그 메시지 만들기
JBoss Logging Tools를 사용하여 MessageLogger 인터페이스를 생성하여 국제화된 로그 메시지를 생성할 수 있습니다.
이 섹션에서는 모든 선택적 기능이나 로그 메시지의 로컬화를 다루지는 않습니다.
아직 완료하지 않은 경우 JBoss EAP Maven 리포지토리를 사용하도록 Maven 설정을 구성합니다.
자세한 내용은 Configure the JBoss EAP Maven Repository using the Maven Settings 에서 참조하십시오.
JBoss Logging Tools를 사용하도록 프로젝트의
pom.xml파일을 구성합니다.자세한 내용은 JBoss Logging Tools Maven Configuration을 참조하십시오.
로그 메시지 정의를 포함하도록 프로젝트에 Java 인터페이스를 추가하여 메시지 로거 인터페이스를 만듭니다.
정의할 로그 메시지를 설명하도록 인터페이스의 이름을 지정합니다. 로그 메시지 인터페이스에는 다음 요구 사항이 있습니다.
-
@org.jboss.logging.annotations.MessageLogger에 주석을 달아야 합니다. -
선택적으로
org.jboss.logging.BasicLogger를 확장할 수 있습니다. 인터페이스는 인터페이스와 동일한 유형의 메시지 로거인 필드를 정의해야 합니다. 이를
@org.jboss.logging.메서드로 수행합니다.Logger의 getMessageLogger()예제: 메시지 로거 생성
package com.company.accounts.loggers; import org.jboss.logging.BasicLogger; import org.jboss.logging.Logger; import org.jboss.logging.annotations.MessageLogger; @MessageLogger(projectCode="") interface AccountsLogger extends BasicLogger { AccountsLogger LOGGER = Logger.getMessageLogger( AccountsLogger.class, AccountsLogger.class.getPackage().getName() ); }
-
각 로그 메시지의 인터페이스에 메서드 정의를 추가합니다.
각 메서드가 나타내는 로그 메시지에 대해 설명적으로 이름을 지정합니다. 각 방법에는 다음 요구 사항이 있습니다.
-
메서드는
void을 반환해야 합니다. -
@org.jboss.logging.annotation.LogMessage 주석을 사용하여 주석을 달아야합니다. -
@org.jboss.logging.annotations.Message 주석을 사용하여 주석을 달아야합니다. -
기본 로그 수준은
INFO(정보)입니다. @org.jboss.logging.annotations.Message의 value 속성에는 번역을 사용할 수 없는 경우 사용되는 기본 로그 메시지가 포함되어 있습니다.@LogMessage @Message(value = "Customer query failed, Database not available.") void customerQueryFailDBClosed();
-
메서드는
메시지가 로깅되어야 하는 코드의 인터페이스 메서드에 호출을 추가하여 메서드를 호출합니다.
인터페이스 구현을 생성할 필요가 없으며, 프로젝트를 컴파일할 때 주석 프로세서가 이 작업을 수행합니다.
AccountsLogger.LOGGER.customerQueryFailDBClosed();
사용자 지정 로거는
BasicLogger에서 하위 분류되므로BasicLogger의 로깅 방법도 사용할 수 있습니다. 비 국제화 메시지를 기록하기 위해 다른 로거를 생성할 필요는 없습니다.AccountsLogger.LOGGER.error("Invalid query syntax.");- 이 프로젝트는 이제 지역화할 수 있는 하나 이상의 국제화된 로거를 지원합니다.
JBoss EAP와 함께 제공되는 logging-tools 빠른 시작은 JBoss Logging Tools 사용 방법에 대한 작업 예제를 제공하는 간단한 Maven 프로젝트입니다.