Sun Java System Application Server Enterprise Edition 8.1 2005Q1 管理ガイド |
第 20 章
ロギングの設定この章では、管理コンソールによるロギングの設定方法とサーバーログの表示方法について簡単に説明します。この章には次の節が含まれています。
ロギングについてログレコード
Application Server は、JSR 047 に指定されている「Java 2 platform Logging API」を使用します。Application Server のログメッセージは、通常 domain_root_dir
/
domain_dir/logs/server.log
にあるサーバーログに記録されます。domain_root_dir
/
domain_dir/logs/
ディレクトリには、サーバーログのほかに別の 2 種類のログも格納されます。access
サブディレクトリには HTTP サービスアクセスログ、tx
サブディレクトリにはトランザクションサービスログがあります。これらのログについては、「HTTP サービスのアクセスログの設定」および「トランザクションの設定」を参照してください。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-ee8.1|javax.ente rprise.system.core|_ThreadID=13;|CORE5004: Resource Deployed: [cr:jms/DurableConnectionFactory].|#]
この例で、
[#
と#]
はレコードの開始と終了をマーク付けします。- 垂直バー (
|
) はレコードのフィールドを区切ります。2004-10-21T13:25:53.852-0400
は日付と時刻を指定します。- Log Level は
INFO
です。このレベルは次のいずれかの値をとることができます。SEVERE
、WARNING
、INFO
、CONFIG
、FINE
、FINER
、およびFINEST
。- ProductName_Version は
sun-appserver-ee8.1
です。- LoggerName はログモジュールのソースを識別する階層ロガーの名前空間で、この場合は
javax.enterprise.system.core
です。- Key Value Pairs はキー名と値で、通常は
_ThreadID=14;
のようなスレッド ID です。- Message は、ログメッセージのテキストです。すべての Application Server の
SEVERE
およびWARNING
メッセージおよび多くのINFO
メッセージは、モジュールコードおよび数値から構成されるメッセージ ID で始まっています。この場合は、CORE5004
です。このログレコード形式は、将来のリリースでは変更または拡張される可能性があります。
ロガー名前空間の階層
Application Server は各モジュールのロガーを提供します。次の表では、管理コンソールの「ログレベル」ページに表示されるとおりに、アルファベット順でモジュールの名前と各ロガーの名前空間を示します (「ログレベルの設定」を参照)。表内の最後の 3 つのモジュールは、「ログレベル」ページには表示されません。
ロギングに関する管理コンソールタスクログの一般設定
- ツリーコンポーネントで、「ノードエージェント」ノードまたは「設定」ノードを開きます。
- 特定のノードエージェントを選択するか、設定するインスタンスを選択します。
- ノードエージェントの場合は、「ロガーの設定」タブを選択します。設定の場合は、「ロガーの設定」ノードを選択します。
- 「ログ設定」ページで、次のフィールドを使用してログをカスタマイズします。
- ログファイル: サーバーログファイル用に別の名前や場所を指定するには、テキストフィールドに新しいパス名を入力します。デフォルトで、その場所は domain_root_dir
/
domain_dir/logs/server.log
です。- アラーム: JMX フレームワークを通じて、
SEVERE
およびWARNING
メッセージをルーティングするには、「有効」チェックボックスにチェックマークを付けます。- システムログへの書き込み: Solaris システムおよび Linux システムに限り、サーバーログのほかに
syslog
機能にログ出力を送る場合は、「有効」チェックボックスにチェックマークを付けます。- ログハンドラ:
server.log
あるいはsyslog
以外の送信先にログを送る場合は、カスタムログハンドラを組み込むことができます。カスタムハンドラの場合は、クラスjava.util.logging.Handler
(JSR 047 準拠の API) を拡張する必要があります。「ログハンドラ」フィールドに、ハンドラの絶対クラス名を入力します。Application Server のクラスパスにもそのハンドラクラスを置き、サーバーの起動時にハンドラがインストールされるようにします。カスタムハンドラからのログレコードは、「ログレコード」に説明する形式になります。- ログフィルタ:
server.log
、syslog
、またはカスタムログハンドラで指定した送信先などに送信するログレコードをフィルタリングする場合は、カスタムログフィルタを組み込むことができます。カスタムフィルタの場合は、インタフェースjava.util.logging.Filter
を実装している必要があります。「ログフィルタ」フィールドに、フィルタの絶対クラス名を入力します。Application Server のクラスパスにもそのフィルタクラスを置き、サーバーの起動時にフィルタがインストールされるようにします。- ファイルローテーションの制限: サーバーログがバイト単位で指定されたサイズに達したら、新規に空のファイル
server.log
を作成し、古いファイルをserver.log_
date に名称変更します。ここで date はファイルがローテーションされた日付と時刻になります。デフォルト値は 2M バイトです。上限の最小値は 500K バイトです。それより小さな値を指定すると、ファイルは 500K バイトに達した時点でローテーションされます。ログファイルのローテーションをオフにするには、この値を 0 に設定します。- ファイルローテーションの時間制限: 指定された分数に達すると、サーバーログはローテーションされます。デフォルト値は 0 です。これは「ファイルローテーションの制限」フィールドで指定されたサイズに達すると、ファイルがローテーションされることを意味しています。1 分または複数の分数を指定すると、時間制限がサイズ制限に優先されます。
- 「保存」をクリックして変更を保存します。「ログファイルを表示」をクリックして、サーバーログを表示します。
ログレベルの設定
- ツリーコンポーネントで、「ノードエージェント」ノードまたは「設定」ノードを開きます。
- 特定のノードエージェントを選択するか、設定するインスタンスを選択します。
- ノードエージェントの場合は、「ログレベル」タブを選択します。設定の場合は、「ロガーの設定」ノードを選択したあと、「ログレベル」タブを選択します。
- 「モジュールログレベル」ページで、対象モジュールまたはログレベルを変更するモジュールの横にあるドロップダウンリストから新しい値を選択します。デフォルトのレベルは
INFO
で、それ以上のレベル (WARNING
、SEVERE
) のメッセージがログに表示されることを意味します。次の値のどれかを選択します (最高から最低まで表示)。- アプリケーションロガーのログレベルを設定するには、「追加プロパティ」セクションを使用します。プロパティ名はロガー名前空間で、値は可能な 8 レベルのいずれか 1 つを指定します。たとえば、プロパティ名を
samples.logging.simple.servlet
に、その値をFINE
に指定できます。次のような CORBA モジュールのトランスポートサブモジュールなど、サブモジュールのログレベルを変更するときにもこの領域を使います。
javax.enterprise.resource.corba.ORBId.transport
- 「保存」をクリックして変更を保存するか、または「デフォルトを読み込み」をクリックしてデフォルト値を復元します。
System.out.println
への呼び出しは、ロガー名javax.enterprise.system.stream.out
を使ってINFO
レベルにログ記録されます。System.err.println
への呼び出しは、ロガー名javax.enterprise.system.stream.err
を使ってWARNING
レベルにログ記録されます。これらのソースからのログをオフにするには、「追加プロパティ」セクションでロガー名の値をOFF
に指定します。ログレベル設定の変更はただちに有効になります。それらは
domain.xml
ファイルにも保存され、サーバーの再起動時に使用されます。サーバーログの表示
「検索条件」領域を使用して、ログビューアのカスタマイズおよびフィルタリングを行います。この基本フィールドは次のように使用します。
- インスタンス名: ドロップダウンリストからインスタンス名を選択して、そのサーバーインスタンスのログを表示します。デフォルトは現在のサーバーインスタンスです。
- ログファイル: ドロップダウンリストからログファイル名を選択して、そのログのコンテンツを表示します。デフォルトは
server.log
です。- タイムスタンプ: 最新のメッセージを表示するには、「最新」 (デフォルト) を選択します。特定期間内のメッセージだけを表示するには、「特定範囲」を選択して、表示される「開始」と「終了」フィールドに日付と時刻を入力します。時刻の値の構文は次の形式を必ず使用してください (SSS はミリ秒)。
hh:mm:ss.SSS
表示したいメッセージを確実にサーバーログに表示するには、最初に「ログレベル」ページで適切なログレベルを設定してください。「ログレベルの設定」を参照してください。
ログレベルに基づくログメッセージのフィルタリングを選択する場合、指定したフィルタリング基準と一致するメッセージだけが表示されます。しかし、このフィルタリングは、どのメッセージがサーバーログに記録されるかには影響しません。
最新の 40 エントリが「ログ設定」と「ログレベル」ページで指定した設定で表示されます。
最新のメッセージが最後に表示されるようにメッセージを並べ替えるには、タイムスタンプヘッダーのとなりの▲印をクリックします。
形式設定済みのメッセージを表示するには、次の印が付いたリンクをクリックします。
(詳細)
「ログエントリの詳細」というウィンドウが現れて、形式設定済みメッセージを表示します。
エントリのリストの末尾で、ボタンをクリックしてログファイルの古いエントリまたは新しいエントリを表示します。
「検索条件」領域で「詳細検索」をクリックして、ログビューアの詳細設定を行います。「詳細オプション」フィールドは次のように使用します。
「基本検索」をクリックして、「詳細オプション」領域を非表示にします。