Sun Java System Application Server Enterprise Edition 8.2 管理ガイド

第 15 章 ロギングの設定

この章では、ロギングの設定方法とサーバーログの表示方法について簡単に説明します。この章は、次の節で構成されます。

ログレコード

Application Server は、JSR 047 に指定されている「Java 2 platform Logging API」を使用します。Application Server のログメッセージはサーバーログ内に記録されます。このサーバーログの場所は通常、domain-dir/logs/server.log です。

domain-dir/logs ディレクトリには、サーバーログのほかに別の 2 種類のログも格納されます。access サブディレクトリには HTTP サービスアクセスログ、tx サブディレクトリにはトランザクションサービスログがあります。これらのログについては、管理コンソール のオンラインヘルプを参照してください。

Application Server のコンポーネントがログ出力を生成します。アプリケーションコンポーネントもログ出力を生成できます。

アプリケーションコンポーネントは、Apache Commons ロギングライブラリを使ってメッセージをロギングしてもかまいません。ただし、ログ設定を効率的に行いたい場合は、プラットフォーム標準の JSR 047 API を使用することをお勧めします。

ログレコードは次の統一形式に従います。

[#|yyyy-mm-ddThh:mm:ss.SSS-Z|Log Level|ProductName-Version|LoggerName|Key Value Pairs|Message|#]

次に例を示します。

[#|2004-10-21T13:25:53.852-0400|INFO|sun-appserver-e8.1|javax.enterprise.
system.core|_ThreadID=13;|CORE5004: Resource Deployed: 
[cr:jms/DurableConnectionFactory].|#]

この例で、

このログレコード形式は、将来のリリースでは変更または拡張される可能性があります。

カスタムログレベルを設定する

この節では、java.util.logging パッケージを使用して Application Server のロギングサブシステムにアクセスするアプリケーションのカスタムロギングレベルを設定する方法について説明します。

java.util.logging パッケージは、ロガーインスタンスを作成できる階層型の名前空間を提供します。特定のロギングレコードが Application Server インスタンスのログファイルに出力されるかどうかは、ログレコードのログレベルと指定したログレベルによって異なります。

Application Server のロガー設定では、20 を超えるロギングモジュールが提供され、Application Server 独自の内部ロギングを詳細に制御できます。また、モジュール名とそのモジュールで使用するロギングレベルを指定することで、カスタムログモジュールを追加作成するオプションもあります。

ここで重要なのは、ロガーは静的な名前であり、継承されないということです。そのため、カスタムロガーが com.someorg.app という名前で設定された場合、アプリケーションがロガー com.someorg.app.submodule を検索しても、com.someorg.app からの設定を継承するロガーは提供されません。代わりに com.someorg.app.submodule には、INFO レベルまたはそれ以上のレベルでロギングするように設定されたデフォルトのロガーがあります。

アプリケーションでロガーの継承を使用する必要がある場合は、Application Server を実行するために使用している Java ランタイムの logging.properties ファイルを編集して設定することができます。たとえば、次のエントリを logging.properties ファイルに追加すると、FINE レベルを継承する com.someorg.app.submodule が作成されます。

com.someorg.app.level = FINE

Java ロギング API の詳細は、http://java.sun.com/j2se/1.5.0/docs/api/java/util/logging/package-summary.html にある Java ドキュメントや、その他の java.util.logging クラスのドキュメントを参照してください。

ロガー名前空間の階層

Application Server では、モジュールごとにロガーが用意されています。次の表では、管理コンソール の「ログレベル」ページに表示されるとおりに、アルファベット順でモジュールの名前と各ロガーの名前空間を示します。表内の最後の 3 つのモジュールは、「ログレベル」ページには表示されません。

表 15–1 Application Server ロガー名前空間

モジュール名

名前空間

管理 

javax.enterprise.system.tools.admin

クラスローダー 

javax.enterprise.system.core.classloading

CMP 

javax.enterprise.system.container.cmp

構成 

javax.enterprise.system.core.config

コネクタ 

javax.enterprise.resource.resourceadapter

CORBA 

javax.enterprise.resource.corba

導入 

javax.enterprise.system.tools.deployment

EJB コンテナ 

javax.enterprise.system.container.ejb

JavaMail 

javax.enterprise.resource.javamail

JAXR 

javax.enterprise.resource.webservices.registry

JAX-RPC 

javax.enterprise.resource.webservices.rpc

JDO 

javax.enterprise.resource.jdo

JMS 

javax.enterprise.resource.jms

JTA 

javax.enterprise.resource.jta

JTS 

javax.enterprise.system.core.transaction

MDB コンテナ 

javax.enterprise.system.container.ejb.mdb

ネーミング 

javax.enterprise.system.core.naming

ノードエージェント (Enterprise Edition に限る) 

javax.ee.enterprise.system.nodeagent

Root 

javax.enterprise

SAAJ 

javax.enterprise.resource.webservices.saaj

セキュリティー 

javax.enterprise.system.core.security

サーバー 

javax.enterprise.system

同期 (Enterprise Edition に限る) 

javax.ee.enterprise.system.tools.synchronization

ユーティリティー 

javax.enterprise.system.util

ベリファイア 

javax.enterprise.system.tools.verifier

Web コンテナ 

javax.enterprise.system.container.web

コアシステムサポート 

javax.enterprise.system.core

システム出力 (System.out.println)

javax.enterprise.system.stream.out

システムエラー (System.err.println)

javax.enterprise.system.stream.err