Java ロギングは、
java.util.logging パッケージによって提供されるロギング・ツールキットです。Java ロギングは、アプリケーションの標準ロギング API を提供します。
メッセージ・ロギング (メッセージ) と
診断トレース (トレース) は、概念的には似ていますが、この両者には大きな違いがあります。
この両ツールを正しく使用するために、アプリケーション開発者はこれらの違いを理解しなければなりません。
メッセージおよびトレースの操作上の定義は次のようになっています。
- メッセージ
- メッセージ項目は通知レコードの一種で、エンド・ユーザー、システム管理者、
およびサポート担当者が見るためのものです。メッセージの本文は明瞭かつ簡潔で、
エンド・ユーザーにもわかるものでなければなりません。メッセージは通常はローカライズされ、エンド・ユーザーの母国語で表示されます。
メッセージの宛先と存続時間は構成できる場合もありますが、通常のシステム操作では、一定レベルのメッセージ・ロギングを使用可能にします。
メッセージ・ロギングは、パフォーマンスの考慮と
メッセージ・リポジトリーのサイズのため、慎重に使用します。
- トレース
- トレース項目は通知レコードの一種で、サービス技術員または開発者が使用するためのものです。そのため、
トレース・レコードはメッセージ項目に比べてかなり複雑かつ冗長で、詳細なものになる可能性があります。ローカライズは、
通常はトレース項目ではサポートされません。トレース項目はかなり不可解で、
該当する開発者やサービス技術員以外には理解できないものもあります。トレース項目は、
通常のランタイム・オペレーション中には書き込まれないことが前提ですが、
必要に応じて使用可能にして、診断情報を収集することもできます。
アプリケーション・サーバーはサーバー始動時にシステム・ストリームをリダイレクトします。
アプリケーションはシステム・ストリームを取得できないため、アプリケーションはコンソールにロギングを出力することができません。
コンソールを使用して、コンソール・ハンドラーを使用することなくアプリケーションをモニターする場合は、SystemOut.log ファイルをモニターするか、または別のファイル・ハンドラーで作成されたファイルをモニターすることができます。
注: アプリケーション・サーバーは、Java ロギングを内部で使用するため、
アプリケーションがこのロギング API によって
システム・ストリームを使用する際に、ある種の制限が適用されます。
サーバー始動時に、標準出力およびエラー・ストリームは、ロギング・インフラストラクチャーに書き込まれる特殊なストリームで置き換えられて、ログ・ファイルにシステム・ストリームの出力が組み込まれます。
このため、アプリケーションは
java.util.logging.ConsoleHandler、またはルート・ロガーに付加された
System.err や
System.out ストリームに書き込んでいるハンドラーを使用することができません。
ルート・ロガーにハンドラーが付加されている場合は、
ロギング・インフラストラクチャー内に無限ループが作成されて、
スタック・オーバーフローやサーバーの異常終了が発生します。
システム・ストリームに書き込むハンドラーを使用する必要がある場合は、非ルート・ロガーにハンドラーを付加して、ログ・レコードが親ハンドラーに公開されないようにする必要があります。
システム・ストリームに書き込まれたデータはフォーマットされ、対応するシステム・ストリーム・ログ・ファイルに書き込まれます。
システム・ストリームに書き込まれている内容をモニターするには、構成されたログ・ファイル (デフォルトで SystemOut.log および SystemErr.log) をモニターすることができます。
注: System.out および STDOUT ストリームは、
z/OS の下の SYSPRINT ddname にリダイレクトされます。System.err および STDERR ストリームは、
z/OS の下の SYSOUT ddname にリダイレクトされます。デフォルトでは、WebSphere
Application Server for z/OS カタログ式プロシージャーは、これらの ddname を
印刷 (SYSOUT=*) データ・セットに関連付け、メッセージ・ログが WebSphere Application
Server ジョブ出力に入ります。ジョブ出力は、Spool Display and Search
Facility (SDSF) または同等のソフトウェアで表示することができます。