5.2.3. JBoss ロギングを使用してアプリケーションにロギングを追加
アプリケーションからのメッセージをログに記録するために、Logger オブジェクト (
org.jboss.logging.Logger
) を作成し、そのオブジェクトの適切なメソッドを呼び出します。このタスクは、アプリケーションにこのオブジェクトのサポートを追加するために必要な手順を示しています。
要件
このタスクを行う前に、 次の条件を満たす必要があります。
- ビルドシステムとして Maven を使用している場合は、JBoss Maven リポジトリーを含めるようプロジェクトが設定されている必要があります。「Maven 設定を使用した JBoss Enterprise Application Platform の Maven リポジトリーの設定」を参照してください。
- JBoss ロギング JAR ファイルがアプリケーションのビルドパスに指定されている必要があります。これを行う方法は、アプリケーションをビルドするのに JBoss Developer Studio を使用するか、Maven を使用するかによって異なります。
- JBoss Developer Studio を使用してビルドする場合、これを行うには JBoss Developer Studio メニューから [Project] -> [Properties] を選択し、[Targeted Runtimes] を選択して、JBoss Enterprise Application Platform 6 のランタイムがチェックされていることを確認します。
- Maven を使用してビルドする場合、これを行うには、次の依存性設定をプロジェクトの
pom.xml
ファイルに追加します。<dependency> <groupId>org.jboss.logging</groupId> <artifactId>jboss-logging</artifactId> <version>3.1.2.GA-redhat-1</version> <scope>provided</scope> </dependency>
JAR は、JBoss Enterprise Application Platform 6 がデプロイされたアプリケーションに提供するため、ビルドされたアプリケーションに含める必要はありません。
プロジェクトが正しくセットアップされたら、ロギングを追加する各クラスに対して次の手順を実行する必要があります。
インポートの追加
使用する JBoss Logging クラスネームスペースに対して import ステートメントを追加します。少なくとも、import org.jboss.logging.Logger
をインポートする必要があります。import org.jboss.logging.Logger;
Logger オブジェクトの作成
org.jboss.logging.Logger
のインスタンスを作成し、静的メソッドLogger.getLogger(Class)
を呼び出して初期化します。各クラスに対してこれを単一インスタンス変数として作成することが推奨されます。private static final Logger LOGGER = Logger.getLogger(HelloWorld.class);
ロギングメッセージの追加
Logger
オブジェクトのメソッドへの呼び出しを、ログメッセージを送信するコードに追加します。Logger
オブジェクトには、さまざまなタイプのメッセージに対するさまざまなパラメーターを持つさまざまなメソッドが含まれます。最も使用しやすいものは次のとおりです。debug(Object message)
info(Object message)
error(Object message)
trace(Object message)
fatal(Object message)
これらのメッセージは、対応するログレベルとmessage
パラメーターを文字列として持つログメッセージを送信します。LOGGER.error("Configuration file not found.");
JBoss Logging メソッドの完全なリストについては、JBoss Enterprise Application Platform 6 API ドキュメンテーションのorg.jboss.logging
パッケージを参照してください。
例5.1 プロパティーファイルを開くときに JBoss ロギングを使用
次の例は、プロパティーファイルからアプリケーションのカスタマイズされた設定をロードするクラスのコードの一部を示しています。指定されたファイルが見つからない場合は、エラーレベルログメッセージが記録されます。
import org.jboss.logging.Logger; public class LocalSystemConfig { private static final Logger LOGGER = Logger.getLogger(LocalSystemConfig.class); public Properties openCustomProperties(String configname) throws CustomConfigFileNotFoundException { Properties props = new Properties(); try { LOGGER.info("Loading custom configuration from "+configname); props.load(new FileInputStream(configname)); } catch(IOException e) //catch exception in case properties file does not exist { LOGGER.error("Custom configuration file ("+configname+") not found. Using defaults."); throw new CustomConfigFileNotFoundException(configname); } return props; }