6.2. JBoss ロギングツール
6.2.1. 概要
6.2.1.1. JBoss ロギングツールの国際化および現地語化
JBoss ロギングツールは、ログメッセージや例外メッセージ、汎用文字列などの国際化や現地語化のサポートを提供する Java API です。JBoss ロギングツールは翻訳のメカニズムを提供するだけでなく、各ログメッセージに対して一意な識別子のサポートも提供します。
国際化されたメッセージや例外は、
org.jboss.logging
アノテーションが付けられたインターフェース内でメソッド定義として作成されます。JBoss ロギングがコンパイル時にインターフェースを実装するため、インターフェースを実装する必要はありません。定義すると、これらのメソッドを使用してコードでメッセージをログに記録したり、例外オブジェクトを取得することが可能です。
JBoss ロギングツールによって作成される国際化されたロギングインターフェースや例外インターフェースは、特定の言語や地域に対する翻訳が含まれる各バンドルのプロパティーファイルを作成して現地語化されます。JBoss ロギングツールはトランスレーターが編集できる各バンドル対してテンプレートプロパティーファイルを生成できます。
JBoss ロギングツールは、プロジェクトの対象翻訳プロパティーファイルごとに各バンドルの実装を作成します。必要なのはバンドルに定義されているメソッドを使用することのみで、JBoss ロギングツールは現在の地域設定に対して正しい実装が呼び出されるようにします。
メッセージ ID とプロジェクトコードは各ログメッセージの前に付けられる固有の識別子です。この識別子をドキュメントに使用すると、ログメッセージの情報を簡単に検索することができます。適切なドキュメントでは、メッセージが書かれた言語に関係なく、ログメッセージの意味を識別子より判断することが可能です。
6.2.1.2. JBoss ロギングツールのクイックスタート
JBoss ロギングツールのクイックスタート
logging-tools
には JBoss ロギングツールの機能を実証する単純な Maven プロジェクトが含まれています。このクイックスタートは本書のコード例で幅広く使用されています。
このクイックスタートを参照すると、本書で説明されている全機能を完全実証することができます。
6.2.1.3. メッセージロガー
メッセージロガーは国際化されたログメッセージを定義するために使用されるインターフェースです。メッセージロガーには
@org.jboss.logging.MessageLogger
アノテーションが付けられます。
6.2.1.4. メッセージバンドル
メッセージバンドルは、汎用の翻訳可能なメッセージや国際化されたメッセージが含まれる例外オブジェクトの定義に使用できるインターフェースです。メッセージバンドルはログメッセージの作成には使用されません。
メッセージバンドルインターフェースには
@org.jboss.logging.MessageBundle
アノテーションが付けられます。
6.2.1.5. 国際化されたログメッセージ
国際化されたログメッセージは、メッセージロガーのメソッドで定義を行い作成されるログメッセージです。メソッドには
@LogMessage
と @Message
アノテーションを付ける必要があり、@Message
の値属性を使用してログメッセージを指定しなければなりません。国際化されたログメッセージはプロパティーファイルに翻訳を提供するとローカライズされます。
JBoss ロギングツールはコンパイル時に各翻訳に必要なロギングクラスを生成し、ランタイム時に現ロケールに対して適切なメソッドを呼び出します。
6.2.1.6. 国際化された例外
国際化された例外はメッセージバンドルで定義されたメソッドから返された例外オブジェクトです。Java Exception オブジェクトを返すメッセージバンドルメソッドにアノテーションを付けてデフォルトの例外メッセージを定義することができます。現在のロケールに一致するプロパティーファイルに翻訳があると、デフォルトメッセージは翻訳に置き換えられます。国際化された例外にもプロジェクトコードとメッセージ ID が割り当てられています。
6.2.1.7. 国際化されたメッセージ
国際化されたメッセージはメッセージバンドルに定義されるメソッドから返された文字列です。Java String オブジェクトを返すメッセージバンドルメソッドにアノテーションを付け、その文字列のデフォルトの内容 (メッセージ) を定義することができます。現在のロケールに一致するプロパティーファイルに翻訳があると、デフォルトメッセージは翻訳に置き換えられます。
6.2.1.8. 翻訳プロパティーファイル
翻訳プロパティーファイルは、1 つのロケール、国、バリアントに対する 1 つのインターフェースからのメッセージ翻訳が含まれる Java プロパティーファイルです。翻訳プロパティーファイルは、メッセージを返すクラスを生成するため JBoss ロギングツールによって使用されます。
6.2.1.9. JBoss ロギングツールのプロジェクトコード
プロジェクトコードはメッセージのグループを識別する文字列のことです。プロジェクトコードは各ログメッセージの最初に表示され、メッセージ ID の前に付けられます。プロジェクトコードは
@MessageLogger
アノテーションの projectCode
属性で定義されます。
6.2.1.10. JBoss ロギングツールのメッセージ ID
メッセージ ID は数字で、プロジェクトコードと組み合わせてログメッセージを一意に識別します。メッセージ IDは各ログメッセージの最初に表示され、メッセージのプロジェクトコードの後に付けられます。メッセージ ID は
@Message
アノテーションの id
属性で定義されます。