この章では、ロギングの設定方法とサーバーログの表示方法について簡単に説明します。次の節で構成されています。
Enterprise Server は、JSR 047 に記述された Java EE プラットフォームのロギング API を使用します。Enterprise Server のログメッセージはサーバーログ (通常は &DomainDir/logs/server.log) に記録されます。ログをローテーションするときに、Enterprise Server は server.log という名前で新しい空のファイルを作成し、古いファイルの名前を server.log_date に変更します。date はファイルがローテーションされた日付と時刻になります。
Enterprise Server のコンポーネントがログ出力を生成します。アプリケーションコンポーネントもログ出力を生成できます。
アプリケーションコンポーネントは、Apache Commons ロギングライブラリを使ってメッセージをロギングしてもかまいません。ただし、ログ設定を効率的に行いたい場合は、プラットフォーム標準の JSR 047 API を使用することをお勧めします。
ログレコードは次の統一形式に従います。
[#|yyyy-mm-ddThh:mm:ss.SSS-Z|Log Level|ProductName-Version|LoggerName|Key Value Pairs|Message|#]
次に例を示します。
[#|2006-10-21T13:25:53.852-0400|INFO|sun-appserver9.1|javax.enterprise. system.core|_ThreadID=13;|CORE5004: Resource Deployed: [cr:jms/DurableConnectionFactory].|#]
この例について説明します。
[# と #] はレコードの開始と終了をマーク付けします。
垂直バー (|) はレコードのフィールドを区切ります。
2006-10-21T13:25:53.852-0400 は日付と時刻を指定します。
Log Level は INFO です。このレベルは次のいずれかの値を取ることができます。 SEVERE、WARNING、INFO、CONFIG、FINE、FINER、および FINEST 。
ProductName-Version は sun-glassfish-comms-server2.0 です。
LoggerName はログモジュールのソースを識別する階層ロガーの名前空間で、この場合は javax.enterprise.system.core です。
Key Value Pairs はキー名と値で、通常は _ThreadID=14; のようなスレッド ID です。
Message は、ログメッセージのテキストです。Enterprise Server のすべての SEVERE メッセージと WARNING メッセージ、および多くの INFO メッセージは、モジュールコードと数値から構成されるメッセージ ID (この場合は CORE5004) で始まります。
このログレコード形式は、将来のリリースでは変更または拡張される可能性があります。
Enterprise Server は各モジュールのロガーを提供します。
asadmin> get server-config.log-service.module-log-levels.* server-config.log-service.module-log-levels.admin = INFO server-config.log-service.module-log-levels.classloader = INFO server-config.log-service.module-log-levels.cmp = INFO server-config.log-service.module-log-levels.cmp-container = INFO server-config.log-service.module-log-levels.configuration = INFO server-config.log-service.module-log-levels.connector = INFO server-config.log-service.module-log-levels.corba = INFO server-config.log-service.module-log-levels.deployment = INFO server-config.log-service.module-log-levels.ejb-container = INFO server-config.log-service.module-log-levels.group-management-service = INFO server-config.log-service.module-log-levels.javamail = INFO server-config.log-service.module-log-levels.jaxr = INFO server-config.log-service.module-log-levels.jaxrpc = INFO server-config.log-service.module-log-levels.jdo = INFO server-config.log-service.module-log-levels.jms = INFO server-config.log-service.module-log-levels.jta = INFO server-config.log-service.module-log-levels.jts = INFO server-config.log-service.module-log-levels.management-event = INFO server-config.log-service.module-log-levels.mdb-container = INFO server-config.log-service.module-log-levels.naming = INFO server-config.log-service.module-log-levels.node-agent = INFO server-config.log-service.module-log-levels.resource-adapter = INFO server-config.log-service.module-log-levels.root = INFO server-config.log-service.module-log-levels.saaj = INFO server-config.log-service.module-log-levels.security = INFO server-config.log-service.module-log-levels.self-management = INFO server-config.log-service.module-log-levels.server = INFO server-config.log-service.module-log-levels.synchronization = INFO server-config.log-service.module-log-levels.util = INFO server-config.log-service.module-log-levels.verifier = INFO server-config.log-service.module-log-levels.web-container = INFO |
ここでは、次の内容について説明します。
管理コンソールを使用してログの一般設定を設定するには、次の手順に従います。
開発者プロファイルの場合は、「Application Server」->「ログ」->「一般」の順に選択します。
クラスタプロファイルおよびエンタープライズプロファイルの場合は、「設定」->「設定」->「ログ設定」->「一般」の順に選択します。
「一般」ページで適切な値を入力し、必要に応じてログをカスタマイズします。Enterprise Server を停止して再起動します。
各設定パラメータの設定の詳細については、管理コンソールで「ヘルプ」をクリックしてください。
これらのログ設定を asadmin で設定するには、get および set コマンドを使用します。
管理コンソールを使用してログレベルを設定するには、次の手順に従います。
開発者プロファイルの場合は、「Application Server」->「ログ」->「ログレベル」の順に選択します。
クラスタおよびエンタープライズプロファイルの場合は、「設定」->「設定」->「ログ」->「ログ設定」->「ログレベル」の順に選択します。
このページで、一覧表示されたモジュールのログレベルを設定します。アプリケーションロガーのログレベルを設定するには、「追加プロパティー」領域を使用します。モジュールのロガーのリストについては、「モジュールのログレベル」を参照してください。
各設定パラメータの設定の詳細については、管理コンソールで「ヘルプ」をクリックしてください。
これらのログ設定を asadmin で設定するには、get および set コマンドを使用します。
たとえば、SIP コンテナのログレベルを「FINE」に設定する場合は、次の set コマンドを使用します。
asadmin set server-config.log-service.module-log-levels.property.sip=FINE
ログファイルを表示するには、次の手順に従います。
開発者プロファイルの場合は、「Application Server」->「ログ」->「ログファイルを表示」の順に選択します。
クラスタおよびエンタープライズプロファイルの場合は、「設定」->「設定」->「ロガーの設定」->「一般」の順に選択し、「ログファイルを表示」をクリックします。
設定内容に基づいたログ結果を表示するには、「検索基準」領域に示されているオプションを使用します。
インスタンス名: ドロップダウンリストからインスタンス名を選択して、そのサーバーインスタンスのログを表示します。デフォルトは現在のサーバーインスタンスです。
ログファイル: ドロップダウンリストからログファイル名を選択して、そのログのコンテンツを表示します。デフォルトは server.log です。
タイムスタンプ: 最新のメッセージを表示するには、「最新」 (デフォルト) を選択します。特定期間内のメッセージだけを表示するには、「特定範囲」を選択して、表示される「開始」と「終了」フィールドに日付と時刻を入力します。時刻の値の構文は次の形式を必ず使用してください (SSS はミリ秒)。
hh:mm:ss.SSS |
次に例を示します。
17:10:00.000 |
「開始」フィールドの値が「終了」フィールドの値よりも遅い場合は、エラーメッセージが表示されます。
ログレベル: ログレベルでメッセージをフィルタリングするには、ドロップダウンリストからログレベルを選択します。デフォルトでは、サーバーログにある選択したログレベルおよびさらに重大なレベルのすべてのメッセージが表示に含まれます。選択したレベルのメッセージだけを表示するには、「より重度の高いメッセージをこれ以上含めない」というラベルの付いたチェックボックスを選択します。
表示したいメッセージを確実にサーバーログに表示するには、最初に「ログレベル」ページで適切なログレベルを設定してください。「ログレベルの設定」を参照してください。
ログレベルに基づくログメッセージのフィルタリングを選択する場合、指定したフィルタリング基準と一致するメッセージだけが表示されます。しかし、このフィルタリングは、どのメッセージがサーバーログに記録されるかには影響しません。
最新の 40 エントリが「ログ設定」と「ログレベル」ページで指定した設定で表示されます。
最新のメッセージが最後に表示されるようにメッセージを並べ替えるには、タイムスタンプヘッダーのとなりの矢印をクリックします。
形式設定済みのメッセージを表示するには、次の印が付いたリンクをクリックします。
(details) |
「ログエントリの詳細」というウィンドウが現れて、形式設定済みメッセージを表示します。
エントリのリストの末尾で、ボタンをクリックしてログファイルの古いエントリまたは新しいエントリを表示します。
「検索基準」領域で「詳細検索」をクリックして、ログビューアの詳細設定を行います。「詳細オプション」フィールドは次のように使用します。
ロガー — モジュール別にフィルタリングするには、ドロップダウンリストから 1 つ以上の名前空間を選択します。shift-click または control-click を使い、複数の名前空間を選択します。
上位レベルの名前空間を 1 つ選ぶと、その下のすべての名前空間が選択されます。たとえば、javax.enterprise.system を選択すると、その名前空間の下にあるすべてのモジュールのロガーも選択されます。 javax.enterprise.system.core、javax.enterprise.system.tools.admin などです。
カスタムロガー — 特定のアプリケーションに固有のロガーのメッセージを表示するには、テキストフィールドで 1 行に 1 つずつロガー名を入力します。アプリケーションに複数のモジュールがある場合は、そのいずれかまたはすべてを表示できます。たとえば、使用しているアプリケーションに次の名前のロガーがあるとします。
com.mycompany.myapp.module1 com.mycompany.myapp.module2 com.mycompany.myapp.module3 |
アプリケーション内のすべてのモジュールのメッセージを表示するには、com.mycompany.myapp と入力します。module2 のメッセージだけを表示するには、com.mycompany.myapp.module2 と入力します。
1 つ以上のカスタムロガーを指定した場合、Enterprise Server モジュールのメッセージは、「ロガー」領域で明示的に指定されるときだけ表示されます。
名前と値のペア — 特定のスレッドの出力を表示するには、テキストフィールドにスレッドのキー名と値を入力します。キー名は _ThreadID です。次に例を示します。
_ThreadID=13 |
com.mycompany.myapp.module2 がいくつかのスレッドで実行されるとします。1 つのスレッドの出力だけを表示するようにログビューアを修正するには、「カスタムロガー」フィールドでモジュールのロガーを指定してからこのフィールドにスレッド ID を指定します。
表示 — 一度に 40 メッセージ (デフォルト) 以上を表示するには、ドロップダウンリストからほかの可能な値 (100、250、または 1000) を選択します。
スタックトレースを表示するには、「過度に長いメッセージを制限」チェックボックスのチェックマークを外します。デフォルトでは、スタックトレースはビューアに表示されませんが、メッセージの 「(詳細)」リンクをクリックすると表示できます。
「基本検索」をクリックして、「詳細オプション」領域を非表示にします。