4.2.3. JBoss ロギングを使用してアプリケーションにロギングを追加
アプリケーションからのメッセージをログに記録するために、Logger オブジェクト (
org.jboss.jboss-logging.Logger) を作成し、そのオブジェクトの適切なメソッドを呼び出します。このタスクは、アプリケーションにこのオブジェクトのサポートを追加するために必要な手順を示しています。
前提条件
このタスクを行う前に、 次の条件を満たす必要があります。
- ビルドシステムとして Maven を使用している場合は、JBoss Maven リポジトリを含めるようプロジェクトが設定されている必要があります。「プロジェクト POM を用いた 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.0.0.CR1</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.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 ロギングメソッドの完全なリストについては、JBoss ロギング Javadoc (http://docs.jboss.org/jbosslogging/latest/) を参照してください。
例4.1 プロパティーファイルを開くときに JBoss ロギングを使用
次の例は、プロパティーファイルからアプリケーションのカスタマイズされた設定をロードするクラスのコードの一部を示しています。指定されたファイルが見つからない場合は、エラーレベルログメッセージが記録されます。
import org.jboss.jboss-logging.Logger;
public class LocalSystemConfig
{
private static final Logger LOGGER = Logger.getLogger(LocalSystemConfig.class);
public Properties openCustomProperties(String configname)
{
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;
}