ロギングおよびトレース
この製品は、製品によって書き込まれるメッセージを処理する統合ロギング・コンポーネントを含んでおり、初期障害データ・キャプチャー機能 (FFDC) サービスを提供しています。
さらに、ロギング・コンポーネントは、System.out、System.err、java.util.logging、および OSGi ロギングに書き込まれるメッセージを取り込みます。ロギング・コンポーネントは、製品によって書き込まれる他のメッセージとこれらのメッセージの処理を統合します。ロギング・コンポーネントは、-verbose:gc 出力などの、JVM プロセスによって直接書き込まれるメッセージは取り込めません。
サーバーには、次の 3 つの 1 次ログ・ファイルがあります。
- console.log - このファイルは、JVM プロセスからリダイレクトされた標準出力および標準エラー・ストリームを含みます。このコンソール出力は、人が直接利用することを目的としています。デフォルトの consoleLogLevel 構成を使用する場合、ロギング・コンポーネントは、主要イベントを標準出力ストリームに書き込み、エラーを標準エラー・ストリームに書き込みます。デフォルトの copySystemStreams 構成を使用する場合、ロギング・コンポーネントは、System.out ストリームに書き込まれるメッセージを標準出力ストリームにもコピーし、System.err ストリームに書き込まれるメッセージを標準エラー・ストリームにもコピーします。標準出力ストリームおよび標準エラー・ストリームには、-verbose:gc 出力などの、JVM プロセスによって直接書き込まれるメッセージが必ず含まれます。このファイルは、server start コマンドを使用した場合にのみ作成されます。また、その場所は、LOG_DIR 環境変数によってのみ変更できます。詳しくは、『コマンド行からの Liberty の管理』を参照してください。
- messages.log - このファイルは、ロギング・コンポーネントによって書き込まれる、または取り込まれるすべてのメッセージを含みます。このファイルに書き込まれるすべてのメッセージには、メッセージのタイム・スタンプおよびメッセージを書き込んだスレッドの ID などの追加情報が含まれます。このファイルには、JVM プロセスに直接書き込まれるメッセージは含まれません。
- trace.log - このファイルは、ロギング・コンポーネントおよび追加トレースによって書き込まれる、または取り込まれるすべてのメッセージを含みます。このファイルは、追加トレースを使用可能にした場合にのみ作成されます。このファイルには、JVM プロセスに直接書き込まれるメッセージは含まれません。
ロギング構成
ロギング・コンポーネントは、サーバー構成を通じて制御できます。ロギング構成の主要なロケーションは、server.xml ファイルです。時折、server.xml ファイルが処理される前に発生する問題を診断するためにトレースの構成が必要になる場合があります。この場合は、bootstrap.properties ファイルに、同等の構成プロパティーを指定することができます。bootstrap.properties ファイルと server.xml ファイルの両方に構成プロパティーを指定した場合は、server.xml ファイルが処理されるまで bootstrap.properties の値が使用されます。その後、server.xml ファイルの値が使用されます。bootstrap.properties と server.xml ファイルの両方に含まれている同じ構成プロパティーに、異なる値を指定しないようにしてください。
属性 | 同等のプロパティー | 説明 |
---|---|---|
logDirectory |
|
この属性を使用して、FFDC を含むすべてのログ・ファイル (console.log ファイルを除く) のディレクトリーを設定できます。デフォルトで、logDirectory は LOG_DIR 環境変数に設定されます。デフォルトの LOG_DIR 環境変数のパスは WLP_OUTPUT_DIR/serverName/logs です。 トラブルの回避: すべてのメッセージを書き込むディレクトリーを構成するには、logDirectory 属性ではなく、LOG_DIR 環境変数または com.ibm.ws.logging.log.directory プロパティーを使用します。そうしないと、デフォルトで、少しのメッセージがはじめに logs ディレクトリーに書き込まれ、その後、残りのメッセージが構成に基づいて、指定ディレクトリーに書き込まれます。logDirectory 属性は、サーバーの実行中にログを指定ディレクトリーに動的に更新する場合に使用できます。
|
|
|
日時は、ロケール形式または ISO-8601 形式を使用します。この属性の値または同等のプロパティーの値として true または false を指定できます。デフォルト値は false です。 値 true を指定した場合、ISO-8601 形式が messages.log ファイル、trace.log ファイル、および FFDC ログで使用されます。形式は yyyy-MM-dd'T'HH:mm:ss.SSSZ です。 値 false を指定した場合、日時は、システムで設定されているデフォルト・ロケールに従った形式になります。デフォルト・ロケールが見つからない場合、形式は dd/MMM/yyyy HH:mm:ss:SSS z になります。 |
maxFileSize |
|
ログ・ファイルの最大サイズ (MB)。このサイズに達すると、ログ・ファイルはロールされます。Liberty のランタイムは、サイズを基準にしたログのローリングのみを行います。この属性を無効にするには、値を 0 に設定します。最大ファイル・サイズは概算値です。デフォルトでは、値は 20 です。 注: maxFileSize は console.log ファイルには適用されません。
|
maxFiles |
|
強制最大ファイル・サイズが存在する場合、この設定を使用して、保持する各ログ・ファイルの数を決定します。この設定は、ある特定の日に発生した例外を要約する例外ログの数にも適用されます。この数が 10 であれば、ffdc/ ディレクトリーに 10 個のメッセージ・ログ、10 個のトレース・ログ、10 個の例外の要約が可能です。デフォルトでは、値は 2 です。 注: maxFiles は console.log ファイルには適用されません。
|
consoleLogLevel |
|
このフィルターは、コンソールに出力されるメッセージの細分度を制御します。有効な値は、INFO、AUDIT、WARNING、ERROR、および OFF です。デフォルトでは、consoleLogLevel は、環境変数 WLP_LOGGING_CONSOLE_LOGLEVEL (設定されている場合) または AUDIT に設定されます。 |
copySystemStreams |
|
true の場合、System.out ストリームと System.err ストリームに書き込まれるメッセージが console.log にコピーされます。false の場合、これらのメッセージは、messages.log または trace.log などの構成済みのログに書き込まれますが、console.log にはコピーされません。デフォルト値は true です。 |
messageFileName |
|
メッセージ・ログのデフォルト名は messages.log です。このファイルは常に存在し、 System.out と System.err に加えて、INFO とその他 (AUDIT、WARNING、ERROR、 FAILURE) のメッセージが含まれます。 このログには、タイム・スタンプと発行元スレッド ID も含まれます。ログ・ファイルが切り替えられる場合、古いログ・ファイルの名前のフォーマットは messages_timestamp.log になります。 |
suppressSensitiveTrace | サーバー・トレースは、ネットワーク接続経由で受信したバイトなどの型のないデータをトレースする場合に、機密データを公開してしまう可能性があります。 この属性を true に設定すると、機密である可能性のある情報がログ・ファイルおよびトレース・ファイルで公開されないようにします。 デフォルト値は false です。 | |
traceFileName |
|
trace.log ファイルは、追加トレースまたは詳細トレースが有効な場合にのみ作成されます。 stdout は特殊値として認識され、 元の標準出力ストリームにトレースを送ります。 |
traceSpecification |
|
トレース・ストリングを使用して、選択的にトレースを有効にします。デフォルトは *=info です。 |
traceFormat |
|
この属性は、トレース・ログのフォーマットを制御します。Liberty のデフォルトのフォーマットは ENHANCED です。WebSphere® Application Server traditional のように BASIC と ADVANCED のフォーマットも使用できます。 |
hideMessage |
|
この属性を使用して、console.log ファイルおよび message.log ファイルで非表示にするメッセージを構成できます。非表示となるように構成したメッセージは、trace.log ファイルにリダイレクトされます。 |
![]() |
![]()
|
![]() |
![]() |
![]()
|
![]() |
![]() |
![]()
|
![]() |
![]() |
![]()
|
![]() |
サーバー構成ファイルにロギング・プロパティーを設定するには、開発者ツールの「サーバー構成」ビューで「ロギングおよびトレース」を選択します。または、サーバー構成ファイルに以下のようなロギング・エレメントを追加します。
<logging traceSpecification="*=audit:com.myco.mypackage.*=finest"/>
ログ詳細レベル仕様の形式は、次のとおりです。
<component> = <level>
ここで、<component> は、ログ詳細レベルを設定するコンポーネントになります。 <level> は、有効なロガー・レベル (off、fatal、severe、warning、audit、info、config、detail、fine、finer、finest、all) のいずれかになります。複数のログ詳細レベルを指定する場合は、コロン (:) で区切ります。
重要: 特定のロガーについて、レベルは、そのロガーに適用される最も具体的なトレース仕様によって決定されます。
コンポーネントは、Java™ パッケージおよびクラス、または Java パッケージの集合に対応しています。
アスタリスク (*) をワイルドカードとして使用して、
指定されたコンポーネントに含まれているすべてのパッケージ内の、
すべてのクラスが含まれているコンポーネントを示します。
以下に例を示します。
- *
- 製品システム・コードやカスタマー・コードなどの、アプリケーション・サーバーで実行中のすべてのトレース可能コードを指定します。
- com.ibm.ws.*
- パッケージ名が com.ibm.ws で始まるすべてのクラスを指定します。
- com.ibm.ws.classloader.JarClassLoader
- JarClassLoader クラスのみを指定します。
バージョン 6 以降のロギング・レベル | 内容/重要度 |
---|---|
off | ロギングはオフになります。 |
fatal | タスクは継続できず、コンポーネント、アプリケーション、サーバーは機能しません。 |
severe | タスクは続行できませんが、コンポーネント、アプリケーション、およびサーバーはそのまま機能します。このレベルは、リカバリー不能エラーが発生しそうであることを示すこともあります。 |
warning | エラーの可能性があること、またはエラーが起こりそうであることを示します。このレベルは、障害の進行 (例えば、潜在的なリソース・リーク) を示すこともあります。 |
audit | サーバー状態またはリソースに影響を与える重大なイベント。 |
info | タスクの全体的な進行状況の概要を示す一般情報 |
config | 構成の変更または状況 |
detail | サブタスクの進行を詳述する一般情報 |
fine | トレース情報 - 一般トレース + メソッド・エントリー、終了、戻り値 |
finer | トレース情報 - 詳細トレース |
finest | トレース情報 - 問題をデバッグするために必要な詳細がすべて含まれるより詳細なトレース |
all | すべてのイベントがログに記録されます。カスタム・レベルを作成した場合、all には、そのレベルが含まれるため、finest より詳細なトレースが示される可能性があります。 |
console.log ファイルは、他のログ・ファイルと同じようなレベルで管理することができません。変更できるプロパティーは、consoleLogLevel、consoleSource、および consoleFormat のみです。 console.log ファイルのサイズが増加することが懸念される場合は、console.log ファイルを使用不可にし、代わりにメッセージ・ログ・ファイルを使用できます。メッセージ・ログ・ファイルには、同じデータが異なるフォーマットで書き込まれます。メッセージ・ログ・ファイルのサイズと数は、maxFileSize 属性と maxFiles 属性を使用して制御できます。例えば、以下の bootstrap.properties ファイルの場合、空の console.log ファイルと、1 MB で切り替えが行われる、最大 3 個の loggingMessages.log ファイルが生成されます。ただし、基礎となる JVM からのメッセージは、console.log にまだ書き込むことができます。bootstrap.properties ファイルの設定が有効になってから、メッセージ・ログ・ファイルが作成されます。そのため、メッセージ・ログ・ファイルは最初、デフォルトの messages.log ではなく、loggingMessages.log として作成されます。
com.ibm.ws.logging.max.file.size=1
com.ibm.ws.logging.max.files=3
com.ibm.ws.logging.console.log.level=OFF
com.ibm.ws.logging.message.file.name=loggingMessages.log
console.log ファイルは、サーバーが再始動されるとリセットされます。注: すべてのオペレーティング・システムで、ログはデフォルトのシステム・エンコードで書き込まれます。
- z/OS® システムの場合、console.log ファイルではデフォルトのコード・ページが使用され、他のすべてのログ・ファイルでは ISO8859-1 エンコード方式が使用され、このエンコード方式でテキスト・ファイルとしてタグ付けされます。 z/OS UNIX System Services (USS) 自動コード・ページ変換機能がアクティブになっている場合、標準的なエディターおよびテキスト・ユーティリティーを使用して表示できます ISO8859-1 でエンコードされたログ・ファイル。
![[18.0.0.1 and later]](../ng_v18001plus.gif)
- server.xml ファイル内で messages.log を JSON フォーマットに設定するには、次のようにします。
<logging messageFormat="json" messageSource="message,trace,accessLog,ffdc" />
- server.env ファイル内でコンソールを JSON フォーマットに設定するには、次のようにします。
WLP_LOGGING_CONSOLE_FORMAT=json WLP_LOGGING_CONSOLE_LOGLEVEL=info WLP_LOGGING_CONSOLE_SOURCE=message,trace,accessLog,ffdc
- bootstrap.properties ファイル内でコンソールを JSON フォーマットに設定するには、次のようにします。
com.ibm.ws.logging.console.format=json com.ibm.ws.logging.console.log.level=info com.ibm.ws.logging.console.source=message,trace,accessLog,ffdc