5.2.3. JBoss Logging を使用したアプリケーションへのロギングの追加
アプリケーションからのメッセージをログに記録するために、Logger オブジェクト (
org.jboss.logging.Logger) を作成し、そのオブジェクトの適切なメソッドを呼び出します。このタスクは、アプリケーションにこのオブジェクトのサポートを追加するために必要な手順を示しています。
要件
このタスクを続行するには、次の条件を満たしている必要があります。
- ビルドシステムとして Maven を使用している場合は、JBoss Maven リポジトリーを含めるようプロジェクトが設定されている必要があります。「Maven 設定を使用した JBoss EAP 6 Maven リポジトリーの設定」を参照してください。
- JBoss Logging JAR ファイルがアプリケーションのビルドパスに指定されている必要があります。これを行う方法は、アプリケーションのビルドに JBoss Developer Studio を使用するか、または Maven を使用するかによって異なります。
- JBoss Developer Studio を使用してビルドする場合は、JBoss Developer Studio メニューから Project -> Properties を選択し、Targeted Runtimes を選択して、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 がデプロイされたアプリケーションに提供するため、ビルドされたアプリケーションに含める必要はありません。
プロジェクトが正しくセットアップされたら、ロギングを追加する各クラスに対して次の手順を実行する必要があります。
インポートの追加
使用する 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 EAP 6 API ドキュメンテーションのorg.jboss.loggingパッケージを参照してください。
例5.1 プロパティーファイルを開くときに JBoss Logging を使用
次の例は、プロパティーファイルからアプリケーションのカスタマイズされた設定をロードするクラスのコードの一部を示しています。指定されたファイルが見つからない場合は、エラーレベルログメッセージが記録されます。
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;
}