Red Hat Training
A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform
6.2.2. 国際化されたロガー、メッセージ、例外の作成
6.2.2.1. 国際化されたログメッセージの作成
このタスクでは、JBoss Logging Tools を使用して、MessageLogger インターフェイスを作成することにより国際化されたログメッセージを作成する方法を示します。すべてのオプション機能またはそれらのログメッセージのローカリゼーションを網羅しているわけではありません。
完全な例については、
logging-tools
クイックスタートを参照してください。
要件:
- 作業用の Maven プロジェクトがすでに存在している必要があります。「JBoss Logging Tools の Maven 設定」 を参照してください。
- プロジェクトには、JBossLoggingTools に必要な Maven 設定が必要です。
手順6.1 国際化されたログメッセージバンドルを作成する
メッセージロガーインターフェイスを作成する
プロジェクトに Java インターフェイスを追加して、ログメッセージ定義を含めます。インターフェイスに定義されるログメッセージの説明的な名前を付けます。ログメッセージインターフェースの要件は次のとおりです。- 注釈を付ける必要があります
@org.jboss.logging.MessageLogger
。 - 延長する必要があります
org.jboss.logging.BasicLogger
。 - インターフェイスは、このインターフェイスを実装する型付きロガーであるフィールドを定義する必要があります。でこれを行う
getMessageLogger()
の方法org.jboss.logging.Logger
。
package com.company.accounts.loggers; import org.jboss.logging.BasicLogger; import org.jboss.logging.Logger; import org.jboss.logging.MessageLogger; @MessageLogger(projectCode="") interface AccountsLogger extends BasicLogger { AccountsLogger LOGGER = Logger.getMessageLogger( AccountsLogger.class, AccountsLogger.class.getPackage().getName() ); }
メソッド定義を追加する
各ログメッセージのインターフェースにメソッド定義を追加します。ログメッセージの各メソッドにその内容を表す名前を付けます。各メソッドの要件は次のとおりです。- メソッドは返す必要があります
void
。 - 注釈を付ける必要があります
@org.jboss.logging.LogMessage
注釈。 - 注釈を付ける必要があります
@org.jboss.logging.Message
注釈。 - の値属性
@org.jboss.logging.Message
デフォルトのログメッセージが含まれています。このメッセージは翻訳がない場合に使用されます。
@LogMessage @Message(value = "Customer query failed, Database not available.") void customerQueryFailDBClosed();
デフォルトのログレベルはINFO
です。メソッドを呼び出します。
メッセージをログに記録する必要があるコードのインターフェイスメソッドへの呼び出しを追加します。インターフェースの実装を作成する必要はありません。これは、プロジェクトがコンパイルされる時にアノテーションプロセッサーにより行われます。AccountsLogger.LOGGER.customerQueryFailDBClosed();
カスタムロガーは BasicLogger からサブクラス化されているため、BasicLogger
((debug()
、error()
など) も使用できます。国際化されていないメッセージをログに記録するために他のロガーを作成する必要はありません。AccountsLogger.LOGGER.error("Invalid query syntax.");
結果
プロジェクトで、現地語化できる 1 つ以上の国際化されたロガーがサポートされるようになります。