6.2.4. 国際化されたログメッセージのカスタマイズ
6.2.4.1. ログメッセージへのメッセージ IDとプロジェクトコードの追加
このタスクではメッセージ ID とプロジェクトコードを国際化されたログメッセージへ追加する方法を説明します。ログメッセージがログで表示されるようにするには、プロジェクトコードとメッセージ ID の両方が必要となります。メッセージにプロジェクトコードとメッセージ ID の両方がない場合、どちらも表示されません。
完全な例は
logging-tools
クイックスタートを参照してください。
要件
- 国際化されたログメッセージを持つプロジェクトが存在する必要があります。「国際化されたログメッセージの作成」を参照してください。
- 使用するプロジェクトコードを認識する必要があります。プロジェクトコードを 1 つ使用することも、各インターフェースに異なるコードを定義することも可能です。
手順6.6 メッセージ ID とプロジェクトコードをログメッセージに追加する
インターフェースのプロジェクトコードを指定します。
カスタムのロガーインターフェースに付けられる@MessageLogger
アノテーションの projectCode 属性を使用してプロジェクトコードを指定します。インターフェースに定義されるすべてのメッセージがこのプロジェクトコードを使用します。@MessageLogger(projectCode="ACCNTS") interface AccountsLogger extends BasicLogger { }
メッセージ ID の指定
メッセージを定義するメソッドに付けられる @Message アノテーションの id 属性を使用して各メッセージに対してメッセージ ID を指定します。@LogMessage @Message(id=43, value = "Customer query failed, Database not available.") void customerQueryFailDBClosed();
メッセージ ID とプロジェクトコードの両方が関連付けられたログメッセージは、メッセージ IDとプロジェクトコードをログに記録されたメッセージの前に付けます。
10:55:50,638 INFO [com.company.accounts.ejb] (MSC service thread 1-4) ACCNTS000043: Customer query failed, Database not available.