ヘッダーをスキップ
Oracle Containers for J2EE構成および管理ガイド
10g(10.1.3.5.0)
B56030-01
  目次
目次
索引
索引

戻る
戻る
次へ
次へ
 

11 OC4Jでのロギング

この章では、OC4Jで使用できるシステムおよびアプリケーションのロギング機能の使用方法について説明します。この章の内容は次のとおりです。

OC4Jにより生成されるログ・ファイルの概要

各OC4Jプロセスでは、トラブルシューティングを支援するために多くのログ・ファイルが生成されます。1つのOC4Jインスタンスに対して複数のプロセスが稼働している場合、複数セットのログ・ファイルが生成されます。

OC4Jでは、次に示す2種類のログ・ファイルが生成されます。

ログ・ファイルは、データの記録対象となるコンポーネントまたはアプリケーションに応じて異なる場所に生成されます。各コンポーネントまたはアプリケーションのロギング構成は、コンポーネント固有のXML構成ファイルに定義されます。

表11-1に、生成される各種ログ・ファイルの名前および場所とともに、各コンポーネントのロギング構成が含まれるXML構成ファイルを示します。特に明記されていないかぎり、示されるパスはすべて、スタンドアロンOC4Jの場合はORACLE_HOME/j2ee/home内、OPMN管理のOC4Jインスタンスの場合はORACLE_HOME/j2ee/instance内です。

表11-1 OC4Jで生成されるログ・ファイルのリスト

コンポーネント 構成ファイル デフォルトのログ・ファイル名および場所

Javaロギングを使用するOC4Jコンポーネント

このODL形式のログ・ファイルの構成方法は、「OC4Jロギングの構成」を参照してください。

スタンドアロンOC4J:

/log/oc4j/log.xml

OPMN管理OC4J:

/log/instance_default_group_1/
oc4j/log.xml

Application Server Control


/application-deployments/ascontrol/
orion-application.xml

スタンドアロンOC4J:

/log/ascontrol-application.log

OPMN管理OC4J:

/log/instance_default_group_1/
ascontrol-application.log

OC4Jにデプロイされたアプリケーション

/application-deployments/app_name/
orion-application.xml

スタンドアロンOC4J:

/application-deployments/
app_name/application.log

OPMN管理OC4J:

/application-deployments/
app_name/instance_default_group_1/
application.log

グローバル(default)アプリケーション

/config/application.xml

スタンドアロンOC4J:

/log/global-application.log

OPMN管理OC4J:

/log/instance_default_group_1/
global-application.log

デフォルトWebサイトのアクセス・ロギング

/config/default-web-site.xml

スタンドアロンOC4J:

/log/default-web-access.log

OPMN管理OC4J:

/log/instance_default_group_1/
default-web-access.log

OC4Jサーバー

/config/server.xml

スタンドアロンOC4J:

/log/server.log

OPMN管理OC4J:

/log/instance_default_group_1/server.log

JMS

/config/jms.xml

スタンドアロンOC4J:

/log/jms.log

OPMN管理OC4J:

/log/instance_default_group_1/jms.log

RMI

/config/rmi.xml

スタンドアロンOC4J:

/log/rmi.log

OPMN管理OC4J:

/log/instance_default_group_1/rmi.log

OPMN

ORACLE_HOME/opmn/conf/opmn.xml

ORACLE_HOME/opmn/logs


oc4j.propertiesファイルを介してOC4Jインスタンスを構成し、デフォルトの宛先ではなく特定のデバッグ先にトレース・ファイルを生成できます。Oracle Application Serverでは、インスタンスが同じグループの場合でも、異なる2つのOC4Jインスタンスが同じ宛先にトレース出力を生成する構成はサポートされていません。各OC4Jインスタンスでは、それぞれのトレース・ファイルが管理されます。

プレーン・テキスト・ファイル・ロギングの使用方法

プレーン・テキスト・ロギングは、OC4Jで使用されるデフォルトの形式です。

この方式は、XMLファイルに合せてメッセージを振り分けます。しかし、同じサイズの複数のログ・ファイルに書き込むのではなく、そのコンポーネントに対するすべてのメッセージを単一のログ・ファイルに書き込みます。次の各項では、テキスト・ロギングの使用方法について説明します。

テキスト・ファイル・ロギングの有効化または無効化

テキスト・ロギングは、表11-1に示したXML構成ファイル(default-web-site.xmlファイルを除く)の要素により、有効または無効になります。(Webサイトのアクセス・ロギングの構成方法は、「Webサイトのアクセス・ロギングの構成」を参照してください。)

ロギングは、各コンポーネントのXML構成ファイルの<log>要素の<file>サブ要素によって有効になります。この要素には、単一のpath属性が含まれ、生成されるログ・ファイルの名前と、必要に応じて場所を指定します。

<log>
  <file path="application.log" />
</log>

コンポーネントのテキスト・ロギングを無効にするには、対応する構成ファイルの<file>要素を削除するか、コメント・アウトします。この行を削除しないでODLを有効にすると、両方のロギング・オプションが有効になります。

たとえば、アプリケーションのテキスト・ロギングを無効にするには、そのアプリケーションのorion-application.xmlファイルで次の<file>要素をコメント・アウトします。

<log>
!-- <file path="application.log" /> -->
</log>

ODLとテキスト・ロギングの両方を同時に有効にできますが、ディスク領域を節約するには、これらのオプションのいずれかを無効にする必要があります。

テキスト・ログ・ファイルの管理

テキスト・ロギングにはサイズ制限やログ循環機能がないため、ログ・ファイルの監視は重要です。チェックしないままにしておくと、ログ・ファイルのサイズは増大し続け、ディスク超過が発生する可能性があります。

これらのファイルを管理する唯一の方法は、OC4Jを停止し、ファイルを削除した後、OC4Jを再起動してログ・ファイルを新しく始めることです。

テキスト・ログ・ファイルの表示

すべてのテキスト・ログ・ファイルは、表11-1に示した場所にデフォルトで生成されます。テキスト・ログ・ファイルは、log拡張子によって識別できます。

OC4Jコンポーネントに対して生成されるテキスト・ログ・ファイルは、次のようにApplication Server Controlを使用して表示できます。

  1. Application Server Controlのページの一番下にある「ログ」リンクをクリックします。

  2. 「OC4J」を開きます。

  3. 「<instanceName>」を開きます。デフォルトのインスタンス名はhomeです。

デプロイ済J2EEアプリケーションのテキスト・ログ・ファイルは、Application Server Controlを使用して表示することはできません。

Oracle Diagnostic Logging(ODL)の使用方法

Oracle Diagnostic Loggingフレームワーク(ODL)には、標準Javaフレームワークを補完して、ログ・データとOracleログ分析ツールを自動的に統合するプラグイン・コンポーネントが用意されています。

ODLフレームワークでは、ログ・ファイルはXML文書形式で作成され、他のOracle Application Serverやカスタム開発されたコンポーネント(Application Server Controlなど)によるログの分析および再利用を可能にします。ODLでは、テキストベースのロギングとは異なり、ログ・ファイルの循環がサポートされています。

ODLの有効化または無効化

ODLは、<odl>要素を表11-1に示したXMLファイルの<log>要素内に追加すると有効になります。


注意:

  • ODLは、アプリケーションがデプロイされる際に、デプロイ・プラン・エディタを使用してlogプロパティのodlsに値を設定すると、アプリケーションに対して有効にできます。

    デプロイ・プラン・エディタを使用したアプリケーションの構成方法は、『Oracle Containers for J2EEデプロイメント・ガイド』 を参照してください。

  • Webサイトに対するODLは、異なる構成を使用します。この構成の詳細は、「Webサイトのアクセス・ロギングの構成」を参照してください。

  • ODLとテキスト・ファイル・ロギングの両方を同時に有効にできます。しかし、ディスク領域を節約するには、これらのオプションのいずれかを無効にする必要があります。


<odl>要素には次の属性があります。すべて必須です。

  • path: このコンポーネントのlog.xmlファイルが生成されるディレクトリへのパス。


    重要:

    次の例に示すように、パスを../log/appNameと指定します。このパスは、Application Server Controlを使用してログ・ファイルを表示するために必要です。


  • max-file-size: 個々のログ・ファイルに対して許容される最大サイズ(KB単位)。この制限に達すると、新しいログ・ファイルが生成されます。

  • max-directory-size: ログ・ファイル・ディレクトリに対して許容される最大サイズ(KB単位)を設定します。この制限を超えると、最も古いログ・ファイルから消去されます。

たとえば、petstoreアプリケーションのorion-application.xmlファイルの次のエントリは、このアプリケーションに対してlog.xmlファイルを生成します。また、ログ・ファイルの最大値を1,000KB、ディレクトリの最大値を10,000KBに設定します。

<log>
  <odl path="../log/petstore/" max-file-size="1000" max-directory-size="10000" />
</log>

この構成を使用して、petstoreログ・ファイルは、使用しているOC4Jインストールに応じて、次の場所に生成されます。

  • スタンドアロンOC4J:

    ログ・ファイルは、ORACLE_HOME/j2ee/home/application-deployments/log/petstoreに生成されます。

  • OPMN管理OC4J:

    ファイルは、ORACLE_HOME/j2ee/instance/application-deployments/log/instance_default_group_1/petstoreというOC4Jインスタンス固有のディレクトリに生成されます。

ODLログ・ファイルの管理

ODLフレームワークでは、ログ・ファイルの循環などログ・ファイルの管理をサポートしています。ログ・ファイルの最大サイズおよびログ・ディレクトリの最大サイズも定義できます。また、OLDを使用すると次のような利点があります。

  • 保存する診断情報の合計容量を制限できます。

  • 作成された順序に従って、古いセグメント・ファイルは削除され、新しいセグメント・ファイルは保存されます。

  • コンポーネントをアクティブなままにできるため、診断ログ・ファイルがクリーンアップされる際にも停止する必要がありません。

ODLログは、現行のログ・ファイルlog.xml、および古いメッセージが含まれるゼロ以上のOLDアーカイブ(セグメント・ファイル)を含む一連のログ・ファイルです。ODLを有効にすると、新しいメッセージはそれぞれ、log.xmlの最後に追加されます。このログ・ファイルは循環ポイントに達すると名前が変更され、新しいlog.xmlファイルが作成されます。

現行のログ・ファイルが循環ポイントに達するとセグメント・ファイルが作成されます。この循環ポイントは最大ODLセグメント・サイズとして、また、一部のOC4Jログでは循環時間および循環頻度として指定されています。log.xmlファイルはlogn.xmlという名前に変更されます。ここでnは1から始まる整数です。新しいlog.xmlファイルは、コンポーネントにより新しい診断メッセージが生成されると作成されます。

最後のログ・ファイルがいっぱいになると、次の手順で処理されます。

  1. ディレクトリの領域を空けるため、最も古いログ・ファイルが消去されます。

  2. log.xmlファイルが最新のlogn.xmlファイルに書き込まれます。nは、最新のログ・ファイルを1だけ増やした値です。

サイズベースのログ循環

アプリケーションまたはコンポーネントのODLログのサイズを制限するには、ログ・ディレクトリの最大サイズを指定する構成オプションを使用します。ディレクトリ内の全ファイルの合計サイズが最大サイズに達すると、合計サイズを指定された制限内に保つために最も古いアーカイブが削除されます。


注意:

最新のセグメント・ファイルは削除されません。

たとえば、log9872という名前のセグメント・ファイルで開始し、最大ディレクトリ・サイズに達したとき、ログ・ファイル・ディレクトリに次のファイルが存在するとします。

File                        Size

log.xml                     10002
log9872.xml                 15000
log9873.xml                 15000
log9874.xml                 15000
log9875.xml                 15000
log9876.xml                 15000

この場合、log.xmlがいっぱいになるとlog9872.xmlが削除されて、log.xmlの内容が新しいファイルlog9877.xmlに移動されます。その後、新しい診断メッセージが新しいlog.xmlファイルに書き込まれます。

たとえば、petstoreと言う名前のOC4Jアプリケーションに最大のODLセグメント・サイズおよび最大ディレクトリ・サイズを指定するには、ファイルORACLE_HOME/j2ee/instance_name/application-deployments/petstore/orion-application.xmlに次のエントリを追加します。

<log>
<odl path="../log/petstore/" max-file-size="1000" max-directory-size="10000" />
</log>

j2ee-logging.xmlファイルに構成されているOC4Jコンポーネントの場合は、最大セグメント・サイズおよびディレクトリ・サイズに加えて、循環時間と循環頻度も指定できます。

時間ベースのログ循環

時間ベースのログ循環では、<logging-configuration>ルート要素の<log-handlers>要素の<log_handler>サブ要素に次に示すプロパティを指定できます。

  • baseRotationTime: 循環のベース時間(オプション)。ベース時間の書式は次のいずれかです。

    • hh:mm。04:20など。この書式ではローカル・タイムゾーンを使用します。

    • yyyy-MM-dd。2006-08-01など。この書式ではローカル・タイムゾーンを使用します。

    • yyyy-MM-ddThh:mm。2006-08-01T04:20など。この書式ではローカル・タイムゾーンを使用します。

    • yyyy-MM-ddThh:mm:ss.sTZD。TZDはタイムゾーン・インジケータです。TZDは、UTCを示すZまたは{+|-}hh:mmです。たとえば、2006-03-01T04:20:00-08:00は米国太平洋標準時タイムゾーンの2006年3月1日4:20:00を表します。

    baseRotationTimeを指定しない場合、デフォルト値はUTCの1970年1月1日00:00です。

  • rotationFrequency: 分単位の循環頻度。その他に、hourlydailyweeklyのいずれかの値を指定できます。

これらのプロパティは次のファイルに指定します。

ORACLE_HOME/j2ee/instance_name/config/j2ee-logging.xml

たとえば、毎日ローカル時間の午前4時、またはサイズが2000000バイトに達した時にログ・ファイルを循環すると指定するには、次のようにします。

<log_handler name="h1" class="oracle.core.ojdl.logging.ODLHandlerFactory">
     <property name="path" value="log"/>
     <property name="baseRotationTime" value="04:00"/>
     <property name="rotationFrequency" value="daily"/>
     <property name="maxFileSize" value=" 2000000"/>
</log_handler>

ODLログ・ファイルの表示

ODL形式のログ・ファイルは、Application Server Controlで「ログ」リンクをクリックすると表示でき、管理者は、一元管理された場所からOC4J内で稼働しているすべてのコンポーネントおよびアプリケーションによって生成されたロギング出力を集計および表示できます。

ODLログ・ファイルは、「ログ・ファイル」ページでは.xml拡張子で識別されます。

  1. Application Server Controlのページの一番下にある「ログ」リンクをクリックします。

  2. 「OC4J」を開きます。

  3. 「<instanceName>」を開きます。スタンドアロンOC4JとOASのいずれでも、デフォルト・インスタンス名はhomeです。

  • OC4Jログ・ファイルを表示するには、診断メッセージ・ログを開いた後、log.xmlを開きます。

  • 特定のJ2EEアプリケーションのODLログを表示するには、次のようにします。

    • 「アプリケーション<applicationName>」を開きます。

    • 診断メッセージ・ログを開きます。このディレクトリ内に生成されたlog.xmlファイルを開いて表示します。

OC4Jロギングの構成

OC4Jの各種コンポーネントでは、OC4Jログ・ファイルに書き込むJavaログ出力を利用します。OC4Jログ・ファイルは、Oracle Diagnostic Loggingフレームワークを使用してXML形式で生成され、Application Server Controlを使用して表示できます。

この項の内容は次のとおりです。

OC4Jコンポーネント・ログ出力の使用方法と構成

OC4Jには、OC4Jログ・ファイル(log.xml)に書き込む多くのコンポーネント・ログ出力が用意されています。使用可能なコンポーネント・ログ出力は、Application Server Controlの「ログ出力の構成」ページで表示および構成できます。

Javaのログ・レベルは、個々のコンポーネント・ログ出力ごとに設定できます。NULLに設定すると、ログ出力は、親に設定されたログ・レベルを継承します。

したがって、すべてのログ出力のデフォルト・レベルは、oracleログ出力から継承されるデフォルト値であるINFOです。この値は、Javaログ・レベルNOTIFICATIONにマップされます。このデフォルト値の変更方法は、「oracleログ出力の構成」を参照してください。

「ログ出力の構成」ページからログ出力に設定されたログ・レベルは保存されず、OC4Jランタイムにのみ適用されます。OC4Jが再起動されると、ログ・レベルは親ログ出力から継承されるデフォルト設定に戻ります。

表11-2に、Application Server Controlを使用して設定できるログ・レベルと、各Javaログ・レベルのマップ先となるODL message type:log levelを示します。

表11-2 OC4Jコンポーネント・ログ出力のログ・レベル

Javaログ・レベル ODLメッセージ・タイプ:ログ・レベル ODLの説明
NULL
 

ログ出力は、親に設定されたログ・レベルを継承します。

SEVERE
ERROR:1

システム管理者が注意する必要があるシステム・エラーを記録します。

WARNING
WARNING:1

エラーが発生する前に確認して処理する必要があるとして検出されたアクションまたは条件を記録します。

INFO
NOTIFICATION:1

標準のアクションまたはイベントを記録します。ユーザー操作(「ログイン完了」など)や自動操作(ログイン・ファイルの循環など)が該当します。

CONFIG
NOTIFICATION:16

構成関連のメッセージまたは問題を記録します。

FINE
TRACE:1

デバッグやパフォーマンスの監視に使用されるトレースまたはデバッグのメッセージを記録します。通常、詳細なイベント・データが含まれます。

FINER
TRACE:16

非常に詳細なトレースまたはデバッグのメッセージを記録します。

FINEST
TRACE:32

きわめて詳細なトレースまたはデバッグのメッセージを記録します。


Application Server Controlを使用してOC4Jコンポーネント・ログ出力を構成する手順:

  1. 「管理」リンクをクリックします。

  2. 「ログ出力の構成」をクリックします。

  3. ログ・レベルを表11-2の左列に示された値に設定します。

  4. 「適用」をクリックして、変更をOC4Jランタイムに適用します。

OC4Jログ・ファイルの表示

OC4Jログ・ファイルは、Application Server Controlを使用して表示できます。ファイルを表示するには、次のようにします。

  1. Application Server Controlのページの一番下にある「ログ」リンクをクリックします。

  2. 「OC4J」を開きます。

  3. 「<instanceName>」を開きます。

  4. 診断メッセージ・ログを開きます。

すべてのODLログ・ファイルと同様に、新しいメッセージはそれぞれ、log.xmlという最新のログ・ファイルに格納されます。最大サイズに達すると、ログはlogn.xmlというアーカイブ・ログ・ファイルにコピーされます。nは、1から始まる整数です。

oracleログ出力の構成

oracleログ出力の構成は、j2ee-logging.xmlに定義されます。このファイルは、ORACLE_HOME/j2ee/instance/configディレクトリにインストールされています。

Application Server Controlを使用してoracleログ出力を構成する手順:

  1. OC4Jホームページで「管理」をクリックします。

  2. 管理タスクから、「ログ出力の構成」を選択して「ログ出力の構成」ページを表示します。

  3. 「すべてを開く」をクリックして、現在OC4Jインスタンスにロードされているログ出力の全リストを表示します。

  4. ページに表示されている任意のログ出力のログ・レベルを選択します。

j2ee-logging.xmlでoracleログ出力を構成する手順:

また、j2ee-logging.xml構成ファイルは手動で編集することもできます。このファイルの変更後には、OC4Jを再起動してください。

構成ファイルには、<logging-configuration>ルート要素内に次の2つの要素があります。

  • <log_handlers>

    この要素には、異なる3つのログ・ハンドラを定義する<log_handler>要素が含まれます。

    • oc4j-handler

      oracleログ出力用のログ・ハンドラです。

    • oracle-webservices-management-auditing-handler

      oracle.webservices.management.auditingログ出力用のログ・ハンドラです。

    • oracle-webservices-management-logging-handler

      oracle.webservices.management.loggingログ出力用のログ・ハンドラです。

    次のプロパティは、各ログ・ハンドラの<property>サブ要素に指定します。

    • path: ハンドラがログ・ファイルを生成するディレクトリを指定します。この値は変更しないでください。

    • maxFileSize: ディレクトリ内のログ・ファイルに対して許容される最大サイズ(バイト単位)を設定します。この制限を超えると、新しいファイルが生成されます。

    • maxLogSize: ログ・ファイル・ディレクトリに対して許容される最大サイズ(バイト単位)を設定します。この制限を超えると、最も古いログ・ファイルから消去されます。

  • <loggers>

    この要素には、次の情報を定義する<logger>要素が含まれます。

    • name: ログ出力名。この値は変更しないでください。

    • level: このログ出力が機能する最低ログ・レベル。このレベルは、デフォルトでODLの値NOTIFICATION:1に設定されます。この値はApplication Server Controlの「ログ出力の構成」ページに表示されるJavaログ・レベルINFOにマップされます。

      この値は、Javaロギング・レベル(FINE)またはODLメッセージ・タイプ:ログ・レベル(TRACE:1)のいずれかに設定できます。

    • useParentHandlers: ログ出力で親ハンドラを使用する必要があるかどうかを示します。この値はデフォルトでfalseに設定されるため、oracleログ出力は親(rootログ出力)に設定されたログ・レベルを継承しません。

    • <handler>: 使用するハンドラの名前。この値は変更しないでください。

次の例では、ODLメッセージ・タイプ:ログ・レベルとしてTRACE:32を指定し、デフォルトのログ・レベルをFINESTに設定しています。

<logging_configuration>
  <log_handlers>
    <log_handler name='oc4j-handler'
        class='oracle.core.ojdl.logging.ODLHandlerFactory'>
      <property name='path' value='%ORACLE_HOME%/j2ee/%OPMN_PROC_TYPE%/log/
           %OPMN_PROC_TYPE%_%OPMN_PROC_SET%_%OPMN_PROC_INDEX%/oc4j'/>
      <property name='maxFileSize' value='10485760'/>
      <property name='maxLogSize' value='104857600'/>
    </log_handler>
  </log_handlers>
  <loggers>
    <logger name='oracle' level='TRACE:32' useParentHandlers='false'>
      <handler name='oc4j-handler'/>
    </logger>
  </loggers>
</logging_configuration>

LogViewerを使用したOC4Jログのアプリケーション・メッセージの表示

アプリケーション・ログ・メッセージをOC4Jロギング・システムに送信し、LogViewerを使用してApplication Server Controlで表示できます。標準のJDKロギングAPIを使用する場合、ログ・ハンドラとログ・レベルを構成して、アプリケーションからのログ・エントリをOC4Jのメイン・ログであるORACLE_HOME/j2ee/instance/log/oc4j/log.xmlに送信できます。このログは、LogViewerにより、診断ログとしてApplication Server Controlにリストされます。

LogViewerを使用してOC4Jログのアプリケーション・メッセージを表示する手順:

  1. アプリケーションで、次に示すように、ログ出力ネーミング階層を使用し、異なるレベルでログ・メッセージを発行するようログ出力を設定します。

    例11-1 異なるログ・レベルを設定するためのアプリケーション・ログ出力

    Logger logger = Logger.get("emp.app.web.EmployeeFrontEnd");
    public void doGet(HttpServletRequest request,
              HttpServletResponse response) throws ServletException,
              IOException {response.setContentType(CONTENT_TYPE);
    logger.fine(
    String.format("Handling web request for %s", request.getRequestURL()));
    PrintWriter out = response.getWriter();
    out.println("<html>");
    out.println("<head><title>EmployeeFrontEnd</title></head>");
    out.println("<body>");
    Employee test = Employee.getTestInstance();
    logger.finest(
    String.format("Test Employee Instance: %s", test));
    logger.finest(
    String.format("Calling %s to locate office for %s",
              employeeManager.toString(),
              test.identifier(test.ID_SHORT)));
    String location = employeeManager.locateEmployeeOffice(test);
    logger.finest(
    String.format("bean returned %s for %s ",
              location, test.identifier(test.ID_SHORT)));
    out.printf("<p>Employee: %s</br>Office: %s</p>", test.identifier(test.ID_SHORT), location);
    logger.fine(String.format("Employee currently earns $%s", test.getSalary()));
    test.raiseSalary(15D);
    out.printf("<p>Give employee 15percent raise, now earns %s", test.getSalary());
    out.println("</body></html>");
    out.close();
    }
    
  2. 次の例に示すように、j2ee-config.xmlファイルの<logging_configuration>要素に、アプリケーション・ログ出力名とログ・レベルを指定し、ログ出力でoc4j-handlerを使用するよう宣言する新しい<logger>要素を追加します。

    <logging_configuration>
      <log_handlers
        <log_handler name="oc4j-handler"
               class="oracle.core.ojdl.logging.ODLHandlerFactory">
          <property name="path" value="../log/oc4j"/>
          <property name="maxFileSize" value="10485760"/>
          <property name="maxLogSize" value="104857600"/>
          <property name="encoding" value="UTF-8"/>
          <property name="supplementalAttributes" value="J2EE_APP.name,
               J2EE_MODULE.name,WEBSERVICE.name,WEBSERVICE_PORT.name"/>
        </log_handler>
      </log_handlers>
      <loggers>
        <logger name="oracle" level="NOTIFICATION:1" useParentHandlers="false">
          <handler name="oc4j-handler"/>
          <handler name="console-handler"/>
        </logger>
        <logger name="emp" level="FINEST
          <handler name="oc4j-handler"/>
        </logger>
      </loggers>
    </logging_configuration>
    

    oracleルート・ログ出力に書き込まれたすべてのメッセージは、oc4j-handlerに送信されます。このハンドラは、ORACLE_HOME/j2ee/instance/log/oc4j/log.xmlファイルにXML形式でメッセージを書き出します。

  3. Application Server Controlのページの一番下にある「ログ」リンクをクリックし、図11-1に示すように、使用可能なすべてのログをリストします。

    図11-1 Application Server Controlでのログ出力リスト

    図11-1の説明が続きます
    「図11-1 Application Server Controlでのログ出力リスト」の説明

  4. 「ログ・ファイル」ページで、「診断ログ」をクリックし、LogViewerによりOC4Jログのメッセージが表示されるようにします。

    図11-2に示すように、「診断ログ」ページには、OC4Jサーバーのログ・エントリおよびアプリケーションのログ・エントリが表示されます。各ログ・メッセージには、web_EmployeeFrontEndまたはejb_EmployeeManagerBeanなど、ログ・エントリが生成されたコンポーネントが表示されています。

    図11-2 LogViewerの「診断ログ」ページ

    図11-2の説明が続きます
    「図11-2 LogViewerの「診断ログ」ページ」の説明

  5. 個々のリクエストのすべてのログ・エントリを順番に表示するには、ログ・エントリの「実行コンテキストID」(ECID)リンクをクリックします。

    Oracleロギング・フレームワークは、各ログ・メッセージに割り当てられたECIDに基づいて、同じ実行パスにある異なるコンポーネントからの様々なログ・エントリを関連付けることができます。図11-3に示すように、LogViewerにより、選択したECIDのすべてのログ・エントリがタイムスタンプ順に表示されます。

    図11-3 順番に表示された実行コンテキストのログ・メッセージ

    図11-3の説明が続きます
    「図11-3 順番に表示された実行コンテキストのログ・メッセージ」の説明

  6. LogViewerの検索機能を使用して、OC4Jログの目的の項目を検索します。

Application Server Controlを使用したアプリケーション・ログ出力の構成

アプリケーションが実行されてそのログ出力が登録された後、またはj2ee-config.xmlファイルにそれらを構成した後には、Application Server Controlを使用してアプリケーション・ログ出力を構成できます。「ログ出力の構成」ページを使用すると、アプリケーション・ロギングを簡単にカスタマイズできます。

Application Server Controlを使用してアプリケーション・ログ出力を構成する手順:

  1. OC4Jホームページで「管理」をクリックします。

  2. 管理タスクから、「ログ出力の構成」を選択して「ログ出力の構成」ページを表示します。

  3. 「すべてを開く」をクリックして、現在OC4Jインスタンスにロードされているログ出力の全リストを表示します。

    OC4Jログ出力およびアプリケーション・ログ出力が、各ログ出力のレベルを指定できる選択リストとともに表示されます。

  4. ページにリストされている任意のログ出力のログ・レベルを選択します。

アプリケーションのlog4jメッセージのOC4Jログへのリダイレクト

Oracle Application Serverディストリビューションには、OracleAppenderクラスを含むJARファイル(ORACLE_HOME/diagnostics/lib/ojdl-log4j.jar)が同梱されています。このクラスはOracle log4jアペンダで、log4jメッセージをOracle Diagnostic Logging(ODL)のXML形式に変換します。アプリケーションでこのアペンダを使用するには、アペンダを構成し、アプリケーションに対してlog4jクラス・ライブラリを使用可能にする必要があります。

log4j.propertiesファイルには、適切なlog4j設定と有効化するJavaログ・レベルを構成できます。例11-2に示すように、OracleAppenderを使用して、log4jエントリを取得し、Oracleログ・システムにルーティングできます。

例11-2 Oracle log4jアペンダの構成ファイル

log4j.rootLogger=TRACE,OJDL
log4j.appender.OJDL=oracle.core.ojdl.log4j.OracleAppender
log4j.appender.OJDL.LogDirectory=${oracle.j2ee.home}/log/oc4j
#log4j.appender.APP1.MaxSize=1000000
#log4j.appender.APP1.MaxSegmentSize=200000
#log4j.appender.APP1.Encoding=iso-8859-1
log4j.appender.OJDL.ComponentId=OracleProd

この構成では、log4jメッセージがORACLE_HOME/j2ee/home/log/oc4j/log.xmlファイルに送信されます。LogViewerによりこのファイルが読み取られ、Application Server Controlに診断ログとして表示されます。

Oracle log4jアペンダを構成したら、OC4J共有ライブラリ・メカニズムを使用して、log4jクラス・ライブラリをOC4Jに公開し、アプリケーションにライブラリをインポートできます。

アプリケーションへのOracle log4jアペンダの構成

log4j.propertiesファイルのOracleAppenderクラスを使用して、アプリケーションにOracle log4jアペンダを構成できます。その後、デプロイ中にアプリケーションに構成をインポートできます。

デプロイ時にアプリケーションにlog4j.propertiesファイルをインポートするには、OC4J共有ライブラリ・メカニズムを使用します。OC4Jにより、クラス・パスからpropertiesファイルが読み取られます。log4j.propertiesファイルを含む共有ライブラリをアプリケーションにインポートすると、ファイルへのアクセスが可能になり、アプリケーションにlog4jを構成できます。

異なるログ・レベルを有効化し、アプリケーションのデプロイ時にファイルを選択するなどのために、異なるlog4j.propertiesファイルを含む一連の共有ライブラリをOC4Jに公開することもできます。デプロイ後、異なるログ設定の切替えを行えるように、アプリケーションが使用するlog4j.propertiesファイルを変更できます。

アプリケーションにOracle log4jアペンダを構成する手順:

  1. log4j.config.info.jarなど、構成済ログ・レベルを示すファイル名を使用して、JARファイルにlog4j.propertiesファイルを配置します。

  2. JARファイルを含むOC4J共有ライブラリを作成します。

    図11-4に、Application Server Controlを使用してOC4Jインスタンスに共有ライブラリを作成する方法を示します。

    図11-5には、アプリケーションにインポートできる、log4j.propertiesファイルを含む2つの異なる共有ライブラリがあることが示されています。

    図11-5 log4j構成用の共有ライブラリ

    図11-5の説明が続きます
    「図11-5 log4j構成用の共有ライブラリ」の説明

  3. log4j.config.infoなど、log4j.propertiesファイルを含む共有ライブラリを、デプロイ中にアプリケーションにインポートします。

    1. 図11-6に示すように、「デプロイ・タスク」ページで「クラスのロードの構成」を選択します。

      図11-6 「デプロイ・タスク」の「クラスのロードの構成」

      図11-6の説明が続きます
      「図11-6 「デプロイ・タスク」の「クラスのロードの構成」」の説明

    2. 図11-7に示すように、「クラスのロードの構成」ページの「共有ライブラリのインポート」領域で共有ライブラリを選択します。

      図11-7 インポートするアプリケーションの共有ライブラリ

      図11-7の説明が続きます
      「図11-7 インポートするアプリケーションの共有ライブラリ」の説明

    log4.info共有ライブラリにより、アプリケーションのlog4jログ・エントリの処理方法が決定されます。この場合、ルート・ログ出力はINFOレベルに設定され、OC4Jログ・システムへのログ・エントリの送信にOracleAppenderクラスが使用されます。

最終的に、アプリケーションのカスタマイズ済の共有ライブラリ設定は、図11-8に示すように、orion-application.xml構成ファイルに書き込まれます。

図11-8 orion-application.xmlの共有ライブラリ設定

図11-8の説明が続きます
「図11-8 orion-application.xmlの共有ライブラリ設定」の説明

アプリケーションでDEBUGやTRACEなどのさらに低いログ・レベルを使用するよう変更する場合は、orion-application.xml<import-shared-library>要素を変更し、アプリケーションを再起動して、関連するlog4j.propertiesファイルが含まれる共有ライブラリをインポートします。OC4J共有ライブラリ・メカニズムと一貫性のあるネーミング規則を使用すると、再利用可能なlog4j構成をアプリケーションに必要なだけ作成できます。

Oracle log4jアペンダの構成後には、単一のlog.xmlファイルに、log4jからのログ・メッセージとOC4Jからのログ・エントリが含まれます。

アプリケーションによるlog4jクラス・ライブラリの使用

アプリケーションでOracle log4jアペンダを使用するには、アプリケーションに対してlog4jクラスを使用可能にする必要があります。これらのクラスは、log4jおよびojdl-log4jライブラリにあります。次のいずれかの方法で、アプリケーションに対してクラスを使用可能にできます。

  • アプリケーションにライブラリを含めます。

    Java EE 5アプリケーションの場合は、<library-directory>機能を使用して、共有ライブラリを格納するEARファイル内のディレクトリを指定し、そのディレクトリにlog4jおよびojdl-log4jライブラリを配置します。application.xmlファイルの<library-directory>要素で、アプリケーションの共有ライブラリを指定します。これにより、起動時に含めるアーカイブ用に指定したディレクトリがOC4Jによりスキャンされます。

  • log4jおよびojdl-log4jライブラリを含む共有ライブラリをOC4Jに作成し、そのデプロイ中にアプリケーションに共有ライブラリをインポートします。デプロイすると、アプリケーションでライブラリを使用できるようになります。

  • Webアプリケーションがある場合は、log4jおよびojdl-log4jライブラリをWEB-INF/libディレクトリに配置すると、アプリケーションでそれらを使用できます。

    ojdl-log4jライブラリはlog4jライブラリに依存しているため、同じクラス・ローダー・レベルでその両方がアクセス可能であることが必要です。