5.2.3. JBoss Logging を使用したアプリケーションへのロギングの追加
アプリケーションからのメッセージをログに記録するには、Logger オブジェクトを作成します (
org.jboss.logging.Logger
) そしてそのオブジェクトの適切なメソッドを呼び出します。このタスクでは、これに対するサポートをアプリケーションに追加するために必要な手順について説明します。
前提条件
- ビルドシステムとして Maven を使用している場合は、JBossMaven リポジトリーを含めるようにプロジェクトを設定する必要があります。「Maven 設定を使用した JBoss EAP 6 Maven リポジトリーの設定」 を参照してください。
- JBoss Logging JAR ファイルがアプリケーションのビルドパスに指定されている必要があります。これを行う方法は、Red Hat JBossDeveloperStudio を使用してアプリケーションをビルドするか Maven を使用してアプリケーションをビルドするかによって異なります。
- Red Hat JBoss Developer Studio を使用してビルドする場合は、メニューから を選択し、 ランタイムを選択して、JBoss EAP 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 EAP 6 がデプロイされたアプリケーションに提供するため、ビルドされたアプリケーションに含める必要はありません。
手順5.1 アプリケーションにロギングを追加する
ロギングを追加するクラスごとに、次の手順を実行します。
インポートを追加
使用する JBoss Logging クラスネームスペースに対してimport
ステートメントを追加します。少なくとも、インポートする必要がありますimport org.jboss.logging.Logger
。import org.jboss.logging.Logger;
Logger オブジェクトを作成します
のインスタンスを作成しますorg.jboss.logging.Logger
静的メソッドを呼び出して初期化しますLogger.getLogger(Class)
。Red Hat は、これをクラスごとに単一のインスタンス変数として作成することをお勧めします。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 メソッドの完全なリストについては、以下を参照してください。org.jboss.logging
JBoss EAP 6 ドキュメントのパッケージ。
例5.1 プロパティーファイルを開くときに JBossLogging を使用する
この例は、プロパティーファイルからアプリケーションのカスタマイズされた設定をロードするクラスからのコードの抽出を示しています。指定されたファイルが見つからない場合は、ERROR レベルログメッセージが記録されます。
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; }