ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Event Processing管理者ガイド
11gリリース1 (11.1.1.7)
B61653-06
  目次へ移動
目次

前
 
次
 

15 Oracle Event Processingのロギングとデバッグの構成

この章は、Oracle Event Processingのロギングとデバッグの構成方法を、Oracle Event Processingロギング・サービス、Log4j、およびApache CommonsロギングAPIの使用と、デバッグ・オプションの構成を含めて説明します。

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

15.1 ロギングとデバッグの構成の概要

システム管理者と開発者は、ロギング出力を構成し、ログ・メッセージをフィルタ処理してエラーをトラブルシューティングしたり、特定のイベントの通知を受信したりします。

次に、ロギングの構成シナリオの一部を示します。

Oracle Event Processingでは、次のロギング・システムをサポートします。

Oracle Event Processingでは、様々なデバッグ・オプションも提供され、これらのオプションを有効または無効にすることにより、使用するOracle Event Processingアプリケーションを診断できます。15.5項「Oracle Event Processingデバッグ・オプションの構成」を参照してください。


注意:

Oracle Event Processingセキュリティ監査プログラムのロギングの詳細は、10.10項「Oracle Event Processingセキュリティ監査プログラムの構成」を参照してください。



注意:

ログ・メッセージのローカライズ・テキストに使用されるクラスを検証および生成するためにメッセージ・カタログを解析する方法の詳細は、『Oracle Fusion Middleware Oracle Event Processing開発者ガイド for Eclipse』のログ・メッセージ・カタログの管理に関する項を参照してください。


15.1.1 Commons Apacheログ・フレームワーク

Oracle Event Processingでは、commons-loggingインタフェースが提供されます。このインタフェースでは、commons.logging.LogFactoryおよびLogインタフェースの実装が提供されます。そのインタフェースには、ロギング・モジュールのLoggingServiceに委任されるorg.apache.commons.logging.Logの実装を作成するファクトリとして動作するorg.apache.commons.logging.LogFactoryクラスの拡張が含まれています。デフォルトの実装名はweblogic.logging.commons.LogFactoryImplです。

ここでは、次の項目について説明します。

詳細は、http://jakarta.apache.org/commons/logging/apidocs/index.htmlを参照してください。

15.1.1.1 ログ・ファクトリの設定

ここでは、システム・プロパティを使用してログ・ファクトリを設定する方法について説明します。

  • 最高の優先度はシステム・プロパティorg.apache.commons.logging.LogFactoryに対して設定されています。

  • 次のコマンドを使用して、コマンド・ラインからロギングを設定できます。

    -Dorg.apache.commons.logging.LogFactory=weblogic.logging.commons.LogFactoryImpl
    
  • 次のように、プログラムによってロギングを実装できます。

    import org.apache.commons.logging.LogFactory;
    System.setProperty(
        LogFactory.FACTORY_PROPERTY,
        "weblogic.logging.commons.LogFactoryImpl"
    );
    
  • weblogic.logging.commons.LogFactoryImplは、ログ・ファクトリが明示的に設定されない場合、デフォルトのログ・ファクトリです。

  • 別のロギング実装を使用するには、標準のcommons loggingファクトリ実装を使用する必要があります。org.apache.commons.logging.impl.LogFactoryImplの実装はcommons logging jarで使用できます。例:

    -Dorg.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl
    

    または、次のようにプログラミングしても同じです。

    System.setProperty(
        LogFactory.FACTORY_PROPERTY,
        "org.apache.commons.logging.impl.LogFactoryImpl"
    );
    

15.1.1.2 ログの重大度レベルの使用

各ログ・メッセージには重大度レベルが関連付けられています。レベルによって、ログ・メッセージの重要性と緊急度が大まかに示されます。TRACEからEMERGENCYまでの重大度があらかじめ定義されており、これらの重大度は、ログ・リクエストがロガーにディスパッチされるとログ・レベルに変換されます。ログ・レベル・オブジェクトは、次の値(影響の少ない低レベル(左端)から影響の大きい高レベル(右端)の順で並んでいる)のいずれかを指定できます。

TRACEDEBUGINFONOTICEWARNINGERRORCRITICALALERTEMERGENCY

ロガー、ハンドラ、およびユーザー・アプリケーションに対してログの重大度レベルを設定できます。ロガーに対して重大度を設定した場合、いずれのハンドラも、ロガーによって拒否されたイベントを受信しません。たとえば、ロガーに対してログ・レベルをNOTICEに設定した場合、ハンドラは、INFOレベルのイベントを受信しません。ハンドラに対してログ・レベルを設定した場合、制約はそのハンドラのみに適用され、他のハンドラには適用されません。たとえば、ファイル・ハンドラに対してDEBUGをオフにすると、DEBUGメッセージはログ・ファイルには書き込まれませんが、DEBUGメッセージは標準出力には書き込まれます。

ユーザー(Oracle Event Processingモジュールの所有者またはユーザー・アプリケーションの所有者)は、個別モジュールに対してApache commonsロギングで使用されるロギング・カテゴリ・タイプを表す名前を自由に定義できます。ただし、カテゴリ名がパッケージ名として定義されている場合は、ネーミング・ルールに基づいて、ロギング・レベル階層がデフォルトで想定されます。たとえば、2つのモジュールのロギング・カテゴリ名がcom.oracle.foocom.oracle.foo.barである場合は、com.oracle.foocom.oracle.foo.barのルート・ノードになります。このように、子ノードが親をオーバーライドしないかぎり、親ノード(com.oracle.foo)に適用されるロギング・レベルが自動的にcom.oracle.foo.barに適用されます。

つまり、明示的に重大度が構成された最も近い親から重大度が継承されないかぎり、ノードに対して指定されているロギングの重大度が有効です。ルート・ノードは常に明示的に構成されるため、その他の設定がされていない場合は、すべてのノードがルートから重大度を継承します。

表15-1にログ・メッセージの重大度レベルを示します。

表15-1 ログ・メッセージ重大度

重大度 意味
TRACE

診断アクション・ライブラリからのメッセージの場合に使用します。サーバーおよびアプリケーション・クラスの診断インストゥルメンテーションを有効にすると、TRACEメッセージはメソッドのリクエストパスに従います。

DEBUG

デバッグ・メッセージが生成されました。

INFO

通常の処理を報告するために使用する、低レベルの情報メッセージ。

NOTICE

重要度が高い情報メッセージ。

WARNING

不審なオペレーションまたは構成が発生しましたが、通常のオペレーションには影響しません。

ERROR

ユーザー・エラーが発生したことを示します。システムまたはアプリケーションでは、割込みやサービスの限定的な低下を起こすことなくエラーに対処できます。

CRITICAL

システム・エラーまたはサービス・エラーが発生したことを示します。システムは回復できますが、サービスの一時的な損失や永久的な低下が発生する場合があります。

ALERT

システムの特定のサービスだけが使用不能の状態にある。自動回復を実行できない。自動回復を実行できません。この問題を解決するには、管理者がすぐに措置を講じる必要があります。

EMERGENCY

サーバーが使用不能な状態にあります。この重大度は、重大なシステム障害または問題があることを示します。


システムでは、重大度の低いメッセージが数多く生成され、重大度の高いメッセージは少なくなります。たとえば、通常の環境では、INFOメッセージが多く生成され、EMERGENCYメッセージは生成されません。

15.1.1.3 ログ・ファイル

デフォルトでは、Oracle Event ProcessingサーバーはORACLE_CEP_HOME/user_projects/domains/DOMAIN_DIR/servernameディレクトリのserver.logconsoleoutput.logファイルにログ・メッセージを書き込みます。ORACLE_CEP_HOMEは、Oracle Event Processingインストール・ディレクトリ(d:/oracle_cepなど)、DOMAIN_DIRは、ドメイン・ディレクトリ(my_domainなど)、servernameは、サーバー・インスタンス・ディレクトリ(server1など)です。

ログ・ファイル属性の構成は、15.2.2項「log-file」を参照してください。

server.logファイル・メッセージ形式の詳細は、15.1.1.4.1項「ログ・ファイルへの出力形式」を参照してください。

consoleoutput.logファイル・メッセージ形式の詳細は、15.1.1.4.2項「コンソールへの出力、標準出力および標準エラーの形式」を参照してください。

15.1.1.4 ログ・メッセージ形式

Oracle Event Processingサーバーは書き込むログ・ファイルの種類によって、異なる形式でログ・メッセージを書き込みます。

ログ・ファイルの詳細は、15.1.1.3項「ログ・ファイル」を参照してください。

15.1.1.4.1 ログ・ファイルへの出力の形式

システムはメッセージを指定されたログ・ファイルに書き込みます。メッセージは、####接頭辞、タイムスタンプ重大度サブシステムサーバー名接続スレッドIDまたはユーザーIDまたはトランザクションIDメッセージIDメッセージとスタック・トレース(ある場合)で構成されます。各属性は山カッコで囲みます。各属性は山カッコで囲まれます。

次に示すのは、サーバー・ログ・ファイルのメッセージ例です(読みやすくするために分割してありますが、実際にはメッセージは1行にある可能性があります)。

####<Feb 25, 2009 10:23:32 AM EST> <Notice> <Deployment> <> <myServer> 
<RMI TCP Connection(4)-141.144.123.236> <> <> <> <1235575412801> <BEA-2045000> 
<The application bundle "Hello" was deployed successfully to file 
[C:\OracleCEP\user_projects\domains\ocep_domain\defaultserver\applications\Hello\Hello.jar] 
with version 1235575412708>
15.1.1.4.2 コンソールへの出力、標準出力および標準エラーの形式

システムはメッセージをコンソール、標準出力または標準エラーに書き込みます。メッセージは、ロケール形式のタイムスタンプ重大度サブシステムメッセージIDおよびメッセージで構成されます。

次に示すのは、前のセクションからのメッセージが標準出力に出力される仕組みの例です(読みやすくするために分割してありますが、実際にはメッセージは1行にある可能性があります)。

<Feb 25, 2009 10:23:32 AM EST> <Notice> <Deployment> <BEA-2045000> 
<The application bundle "Hello" was deployed successfully to file 
[C:\OracleCEP\user_projects\domains\ocep_domain\defaultserver\applications\Hello\Hello.jar] 
with version 1235575412708>

15.1.2 OSGiフレームワーク・ロガー

Oracle Event Processingには、OSGiフレームワークよりも前に起動する低レベルのフレームワーク・ロガーがあります。このロガーはOSGiフレームワーク内部のロギング・イベントを報告するために使用され、ロギング・サブシステムが構成されるまでロギング・サブシステムのカスタム・デフォルトとして機能します。

たとえば、ユーザーに表示されるログ・メッセージのレベルまたは重大度はconfig.xmlでの設定より低く、コンソールのLauncherコマンド・ラインまたはログ・ファイルでの設定と同じまたはそれより高い可能性があります。ロギング・サブシステムが起動するまで、ログ・メッセージはフレームワーク・ロガーから送信され、フレームワークのロギング・レベルを使用してメッセージがフィルタ処理されます。

15.1.3 Log4jロガー

Log4jは、アプリケーションにログ文を指定するために開発されたオープン・ソースのツールです。Log4jには3つの主要なコンポーネントがあります。

Log4j Javaロギング機能は、Apache FoundationのJakartaプロジェクトによって開発されました。次を参照してください。

詳細は、15.3項「Log4jロギングの構成」を参照してください。

15.1.3.1 ロガー

Log4jでは、Loggerクラスを定義します。1つのアプリケーションで、それぞれが一意の名前を持つ複数のロガーを作成できます。Log4jの一般的な使用方法では、アプリケーションで、ログ・メッセージを出力する各アプリケーション・クラスのLoggerインスタンスが作成されます。ロガーはネームスペースの階層内に存在し、その階層における上位クラスから動作を継承します。

15.1.3.2 アペンダ

Log4jには、ロギング出力の宛先を表すアペンダ(ハンドラ)を定義します。複数のアペンダを定義できます。たとえば、1つのアプリケーションで、ログ・メッセージを標準出力に送信するアペンダと、ログ・メッセージをファイルに書き込むアペンダを定義できます。個々のロガーを構成して、0以上のアペンダに書き込むように構成することもできます。一例としては、すべてのロギング・メッセージ(全レベル)をログ・ファイルに送信する一方で、標準出力にはERRORレベル・メッセージのみを送信する使用方法があります。

15.1.3.3 レイアウト

Log4jには、ログ・メッセージのフォーマットを制御するためのレイアウトが定義されています。各レイアウトは特定のメッセージ・フォーマットを指定します。特定のレイアウトが各アペンダに関連付けられています。これにより、標準出力に対してファイル出力とは異なるログ・メッセージ・フォーマットを指定できます。例:

15.2 Oracle Event Processingロギング・サービスの構成

Oracle Event Processing Visualizerを使用するかOracle Event Processingサーバーconfig.xmlファイルを編集することにより、Oracle Event Processingロギング・サービス属性を構成します。

Oracle Event Processing Visualizerを使用したロギングの構成の詳細は、『Oracle Fusion Middleware Oracle Event Processing Visualizerユーザーズ・ガイド』のログの管理に関する項を参照してください。

config.xmlファイルは、ORACLE_CEP_HOME/user_projects/domains/DOMAIN_DIR/servername/configディレクトリにあります。ORACLE_CEP_HOMEは、Oracle Event Processingインストール・ディレクトリ(d:/oracle_cepなど)、DOMAIN_DIRは、ドメイン・ディレクトリ(my_domainなど)、servernameは、サーバー・インスタンス・ディレクトリ(server1など)です。

例15-1は、ロギング要素を含む一般的なOracle Event Processingサーバーconfig.xmlファイルを示しています。

例15-1 ロギング構成を含むOracle Event Processingサーバーconfig.xmlファイル

<?xml version="1.0" encoding="UTF-8"?>
<!--Sample XML file generated by XMLSpy v2007 sp2 (http://www.altova.com)-->
<n1:config 
    xsi:schemaLocation="http://www.bea.com/ns/wlevs/config/server wlevs_server_config.xsd" 
    xmlns:n1="http://www.bea.com/ns/wlevs/config/server" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
...
        <name>myLogService</name>
        <log-file-config>myFileConfig</log-file-config>
        <stdout-config>myStdoutConfig</stdout-config>
        <logger-severity>Notice</logger-severity>
        <logger-severity-properties>
            <entry>
                <key>LifeCycle</key>
                <value>Notice</value>
            </entry>
            <entry>
                <key>Management</key>
                <value>Notice</value>
            </entry>
            <entry>
                <key>CQLProcessor</key>
                <value>Notice</value>
            </entry>
            <entry>
                <key>EplProcessor</key>
                <value>Notice</value>
            </entry>
            <entry>
                <key>Stream</key>
                <value>Notice</value>
            </entry>
            <entry>
                <key>Ede</key>
                <value>Notice</value>
            </entry>
            <entry>
                <key>Cache</key>
                <value>Notice</value>
            </entry>
            <entry>
                <key>Adapters</key>
                <value>Notice</value>
            </entry>
            <entry>
                <key>Spring</key>
                <value>Notice</value>
            </entry>
            <entry>
                <key>Channel</key>
                <value>Notice</value>
            </entry>
            <entry>
                <key>Recplay</key>
                <value>Notice</value>
            </entry>
            <entry>
                <key>Monitor</key>
                <value>Notice</value>
            </entry>
            <entry>
                <key>Server</key>
                <value>Notice</value>
            </entry>
            <entry>
                <key>EventTrace</key>
                <value>Notice</value>
            </entry>
            <entry>
                <key>Deployment</key>
                <value>Notice</value>
            </entry>
        </logger-severity-properties>
    </logging-service>
    <log-file>
        <name>myFileConfig</name>
        <rotation-type>none</rotation-type>
    </log-file>
    <log-stdout>
        <name>myStdoutConfig</name>
        <stdout-severity>Debug</stdout-severity>
    </log-stdout>

</n1:config>

次の項では、Oracle Event Processingロギングの構成について説明します。

15.2.1 logging-service

この項では、logging-service要素について説明します。

表15-2 logging-serviceの構成パラメータ

パラメータ タイプ 説明
name
String

この構成オブジェクトの名前。

log-file-config
String

ログ・ファイルとそのローテーション・ポリシーの構成。

15.2.2項「log-file」を参照してください。

stdout-config 
String

stdout出力の構成に使用されるstdout構成オブジェクトの名前。15.2.3項「log-stdout」を参照してください。

logger-severity
String

ハンドラに伝播されるメッセージのしきい値の重要度を定義します。

デフォルト値は、Infoです。

DebugおよびTraceメッセージを参照するには、logger-severityDebugまたはTraceに構成します。

有効な値は次のとおりです:EmergencyAlertCriticalErrorWarningNoticeInfoDebugおよびTrace

logger-severity-properties

1つ以上の<entry>子要素。

<entry>要素で囲まれた名前と値の組合せのリストです。個別モジュール(パッケージ名、アプリケーション名、クラス名またはCQLProcessorなどのコンポーネント)とモジュールのロギングの重大度を表します。これらの重大度はOracle Event Processingサーバーのデフォルトの重大度をオーバーライドします。

15.2.4項「個別モジュールの重大度の構成」を参照してください。


15.2.2 log-file

この項では、log-file要素について説明します。

表15-3 log-fileの構成パラメータ

パラメータ タイプ 説明
name
String

この構成オブジェクトの名前。

base-log-file-name
String

ログ・ファイル名。デフォルト値はserver.logです。

log-file-severity
String

ログ・ファイルに書き込む最も重大度の低いメッセージを指定します。デフォルト値はTraceです。

有効な値は次のとおりです:

  • Emergency

  • Alert

  • Critical

  • Error

  • Warning

  • Notice

  • Info

  • Debug

  • Trace

log-file-rotation-dir
String

ローテーションされた古いファイルを格納するディレクトリを指定します。

設定しない場合、古いファイルは基準ログ・ファイルと同じディレクトリに格納されます。

rotation-type
String

ローテーションをサイズに基づいて実行するか、時間に基づいて実行するか、または実行しないかを指定します。

有効な値は次のとおりです:

  • bySize

  • byTime

  • none

rotation-time
String

時間はk:mm形式で表示します。kは24時間表記で指定した時間で、mmは分です。

デフォルト値は、00:00です。

rotation-time-span-factor
Long

時間ベースのログ・ローテーションの頻度となるミリ秒数を決定するために、時間間隔に適用される係数。デフォルトは3600000です。

rotated-file-count
Integer

number-of-files-limitedtrueの場合に、保持するローテーションされた古いファイルの数を指定します。デフォルト値は7です。

rotation-size 
Integer

ログ・ファイルがローテーションされるサイズのしきい値(KB単位)。デフォルトは500です。

rotation-time-span 
Integer

時間ベースのすべてのログ・ローテーションについて、間隔を指定します。デフォルト値は24です。

rotate-log-on-startup-enabled
Boolean

trueの場合、ログ・ファイルは起動時にローテーションされます。デフォルト値はtrueです。

number-of-files-limited
Boolean

trueの場合、ローテーションされた古いファイルが削除されます。デフォルトはfalseです。


15.2.3 log-stdout

この項では、log-stdout要素について説明します。

表15-4 log-stdoutの構成パラメータ

パラメータ タイプ 説明
name
String

この構成オブジェクトの名前。

stdout-severity
String

stdoutに送信されるメッセージのしきい値の重大度。デフォルト値はNoticeです。

有効な値は次のとおりです:

  • Emergency

  • Alert

  • Critical

  • Error

  • Warning

  • Notice

  • Info

  • Debug

  • Trace

stack-trace-depth 
Integer

stdoutに表示するスタック・トレース・フレームの数。

デフォルト値-1は、すべてのフレームが表示されることを意味します。

stack-trace-enabled 
Boolean

trueの場合、ログに記録されたメッセージにスタック・トレースが含まれているときは、スタック・トレースがコンソールにダンプされます。デフォルト値はtrueです。


15.2.4 個別モジュールの重大度の構成

Oracle Event Processingの個別モジュールはロギングの重大度を指定できます。この重大度はOracle Event Processingサーバーのデフォルトのロギング重大度をオーバーライドします。

これは、Oracle Event Processingサーバーconfig.xmlファイルのlogger-severity-properties要素にentry子要素を指定して実行します。任意の数のモジュールに対して複数のentry子要素を指定できます。

個別モジュールの重大度を構成するには:

  1. Oracle Event Processingサーバーconfig.xmlファイルを編集します。

  2. 例15-2で示すように、logger-severity-properties要素にentry子要素を追加します。

    例15-2 logger-severity-properties要素のentry子要素

      <logging-service>
        <name>myLogService</name>
        <logger-severity>Warning</logger-severity>
        <logger-severity-properties>
        ...
            <entry>
                <key>CQLProcessor</key>
                <value>Debug</value>
            </entry>
        ...
        </logger-severity-properties>
        ...
      </logging-service>
    
  3. key要素を次のいずれかに設定します。

    • コンポーネント名: 表15-5に示すコンポーネント名定数。

      表15-5 ロギング・コンポーネント名定数

      コンポーネント名定数 説明

      Adapters

      Oracle Event Processingサーバー上で実行中のアダプタ・インスタンスからのログ・メッセージに適用されます。

      Cache

      Oracle Event Processingサーバー上で実行中のキャッシュ・システムおよびキャッシュ・インスタンスからのログ・メッセージに適用されます。

      Channel

      Oracle Event Processingサーバー上で実行中のチャネルからのログ・メッセージに適用されます。

      CQLProcessor

      Oracle Event Processingサーバー上で実行中のOracle CQLプロセッサからのログ・メッセージに適用されます。

      CQLServer

      各CQLプロセッサのコアにあるCQLEngineからのログ・メッセージに適用されます。

      CQLServerTrace

      各CQLプロセッサのコアにあるCQLEngineからのログ・メッセージに適用されます。

      Coherence

      クラスタリングに関連するメッセージを含む、Oracle Coherenceからのログ・メッセージに適用されます。

      ここに入力する値は、次の方法でOracle Coherenceの重大度レベルにマップされます。


      Error: 1
      Warning: 2
      Notice: 3
      Info: 4
      Debug: 5
      Trace: 9

      構成内のlogging-config設定をオーバーライドして、Oracle Coherenceからのロギングをカスタマイズできます。たとえば、Oracle Coherence (log4j)に使用されるデフォルト・ログの宛先をオーバーライドして、別の宛先を使用できます。構成のオーバーライドの詳細は、5.1.3項「Oracle Coherenceクラスタの構成」を参照してください。

      EplProcessor

      Oracle Event Processingサーバー上で実行中のEPLプロセッサからのログ・メッセージに適用されます。

      Ede

      Oracle Event Processingサーバー・イベント・ディスパッチ・インフラストラクチャのイベント駆動環境からのログ・メッセージに適用されます。

      EventTrace

      InfoまたはDebugに設定すると、すべてのアプリケーションのEPN内で動向中のイベントをトレースできます。Oracle Event Processing Visualizerを使用してこのログ・キーの重大度を動的に変更できます。

      Info重大度では、次のようなログ・メッセージが表示されます。

      <May 26, 2009 5:53:49 PM PDT> <Info> <EventTrace> 
          <BEA-000000> <Application [helloworld], 
          Stage [helloworldOutputChannel] received insert event>
      

      Debug重大度では、ログ・メッセージには次のイベントの詳細が含まれています。

      <May 26, 2009 6:02:34 PM PDT> <Debug> <EventTrace> 
          <BEA-000000> <Application [helloworld], 
          Stage [helloworldOutputChannel] received insert 
          event [HelloWorldEvent: HelloWorld - the current 
          time is: 6:02:34 PM]>
      

      Lifecycle

      Oracle Event Processingサーバーからのログ・メッセージおよびアプリケーション・ライフサイクル操作に適用されます。

      Management

      Oracle Event Processingサーバーの一般的なJMX関連管理のAPI操作からのログ・メッセージに適用されます。

      Monitor

      Oracle Event Processingサーバー・モニタリング・サービスからのログ・メッセージに適用されます。

      Recplay

      Oracle Event Processingサーバーのイベント記録および再生操作からのログ・メッセージに適用されます。

      Spring

      Springコンテナ操作からのログ・メッセージに適用されます。

      Stream

      Oracle Event Processingサーバー上で実行中のストリーム・インスタンスからのログ・メッセージに適用されます。


      例:

      <entry>
          <key>CQLProcessor</key>
          <value>Debug</value>
      </entry>
      
    • アプリケーション名: Oracle Event Processingサーバーまたはユーザー定義アプリケーションのモジュール名。例:

      <entry>
          <key>sample.HelloWorld</key>
          <value>Debug</value>
      </entry>
      
    • パッケージ名: Oracle Event Processingサーバーまたはユーザーが提供するJavaパッケージの名前。例:

      <entry>
          <key>com.bea.wlevs.ede</key>
          <value>Debug</value>
      </entry>
      

      Oracle Event Processingサーバー・パッケージの詳細は、Oracle Fusion Middleware Oracle Event Processing Java APIリファレンスを参照してください。

    • クラス名: Oracle Event Processingサーバーまたはユーザー定義クラスの完全修飾名前。例:

      <entry>
          <key>com.bea.wlevs.cep.core.EPRuntimeImpl</key>
          <value>Debug</value>
      </entry>
      

      Oracle Event Processingサーバー・クラスの詳細は、Oracle Fusion Middleware Oracle Event Processing Java APIリファレンスを参照してください。

  4. value要素に重大度レベルを設定します。

    15.1.1.2項「ログの重大度レベルの使用」を参照してください。

    例:

    <entry>
        <key>CQLProcessor</key>
        <value>Debug</value>
    </entry>
    

    例15-2で示すように、この重大度レベルはkey要素に指定したモジュールに適用され、logger-severity要素に設定されたデフォルトのOracle Event Processingサーバー・ロギング重大度レベルをオーバーライドします。

  5. その他のモジュールに対して、ステップ2からのステップを繰り返します。

  6. config.xmlファイルを保存して閉じます。

15.3 Log4jロギングの構成

Oracle Event Processingはオープン・ソースlog4jロギング・システムをサポートします。

この節では、次のタスクについて説明します。

詳細は、15.1.3項「Log4jロガー」を参照してください。

15.3.1 Log4jプロパティの構成

デフォルトの構成ファイルはlog4j.propertiesです。この指定は、log4j.configurationシステム・プロパティを使用してオーバーライドできます。https://www.qos.ch/shop/products/log4j/log4j-Manual.jspを参照してください。

log4j.propertiesファイルの例を次に示します。

例15-3 log4j.propertiesファイルの例

   log4j.rootLogger=debug, R 
   log4j.appender.R=org.apache.log4j.RollingFileAppender 
   log4j.appender.R.File=D:/log4j/logs/mywebapp.log 
   log4j.appender.R.MaxFileSize=10MB 
   log4j.appender.R.MaxBackupIndex=10 
   log4j.appender.R.layout=org.apache.log4j.PatternLayout 
   log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n 
   log4j.logger=DEBUG, R

15.3.2 アプリケーション・マニフェストの構成

次の必要なLog4jパッケージをインポートするためにアプリケーションのMANIFEST.MFファイルを更新します。

Import-Package:
    org.apache.log4j;version="1.2.13",
    org.apache.log4j.config;version="1.2.13",
    ...

15.3.3 Log4jロギングの有効化

Log4j Loggerへのロギングを指定するには、コマンド・ラインで次のシステム・プロパティを設定します。

   -Dorg.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl
   -Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
   -Dlog4j.configuration=<URL>/log4j.properties

-Dlog4j.debug=trueは、非常に重要なもう1つのコマンド・ライン・プロパティです。このプロパティは、log4j出力に失敗した場合または暗号エラー・メッセージが返された場合に使用します。

15.3.4 Log4jロギングのデバッグ

log4j出力に失敗した場合または暗号エラー・メッセージが返された場合に、-Dlog4j.debug=trueのコマンド・ライン・プロパティをコマンド・ラインで使用します。

詳細は、15.3.3項「Log4jロギングの有効化」を参照してください。

15.4 Apache CommonsロギングAPIの使用

Oracle Event Processingのserver.logおよびconsoleoutput.logファイルにアプリケーション固有のメッセージを記録するために、Oracle Event Processingアプリケーション内のApache CommonsロギングAPIを使用できます。

commonsロギングAPIを使用するには:

  1. システム・プロパティorg.apache.commons.logging.LogFactoryweblogic.logging.commons.LogFactoryImplに設定します。

    このLogFactoryは、org.apache.commons.logging.Logインタフェースを実装するweblogic.logging.commons.LogFactoryImplのインスタンスを作成します。

  2. LogFactoryから、名前を基準にCommons Logオブジェクトへの参照を取得します。

    この名前は、ログ・ファイル内でサブシステム名として表示されます。

  3. Logオブジェクトを使用して、ロギング・サービスにログ・リクエストを発行します。

    Commons Logインタフェース・メソッドは、オブジェクトを受け付けます。ほとんどの場合、これはメッセージ・テキストを含む文字列です。

    Commons LogObjectは、コンストラクタにメッセージID、サブシステム名、および文字列メッセージ引数を取り込みます。http://jakarta.apache.org/commons/logging/api/index.htmlのorg.apache.commons.loggingを参照してください。

  4. weblogic.logging.commons.LogImplログ・メソッドは、メッセージをサーバー・ログに送ります。

例15-4 Commonsのサンプル・コード

import org.apache.commons.logging.LogFactory;
import org.apache.commons.logging.Log;

public class MyCommonsTest {
  public void testCommonsLogging() {
    System.setProperty(LogFactory.FACTORY_PROPERTY,
      "weblogic.logging.commons.LogFactoryImpl");
    Log clog = LogFactory.getFactory().getInstance("MyCommonsLogger");
    // Log String objects
    clog.debug("Hey this is common debug");
    clog.fatal("Hey this is common fatal", new Exception());
    clog.error("Hey this is common error", new Exception());
    clog.trace("Dont leave your footprints on the sands of time");
  }
}

15.5 Oracle Event Processingデバッグ・オプションの構成

表15-6は、Oracle Event Processingが提供するデバッグ・オプションを示しています。これらのデバッグ・オプションを有効または無効にして、Oracle Event Processingアプリケーションの問題を診断できます。

表15-6 デバッグ・フラグ

デバッグ・フラグ 説明
com.bea.core.debug.DebugBootBundle

ブート・デバッグ

com.bea.core.debug.DebugBootBundle.stdout

ブート・デバッグのデバッグ文字列がstdoutに送られます

com.bea.core.debug.DebugCM

構成マネージャ

com.bea.core.debug.DebugCM.stdout

構成マネージャのデバッグ文字列がstdoutに送られます

com.bea.core.debug.DebugConfigurationRuntime

ランタイムMBeanからのランタイム情報

com.bea.core.debug.DebugCSS

CSS

com.bea.core.debug.DebugCSS.stdout

CSSのデバッグ文字列がstdoutに送られます

com.bea.core.debug.DebugCSSServices

CSSサービス

com.bea.core.debug.DebugCSSServices.stdout 

CSSサービスのデバッグ文字列がstdoutに送られます

com.bea.core.debug.DebugJDBCConn

JDBC接続

com.bea.core.debug.DebugJDBCInternal

JDBC内部

com.bea.core.debug.DebugJDBCRMI

JDBC RMI

com.bea.core.debug.DebugJDBCSQL

JDBC SQL

com.bea.core.debug.DebugJTA2PC 

JTA 2PC

com.bea.core.debug.DebugJTA2PCDetail

JTA 2PCDetail

com.bea.core.debug.DebugJTA2PCStackTrace 

JTA 2PCStackTrace

com.bea.core.debug.DebugJTAGateway 

JTAゲートウェイ

com.bea.core.debug.DebugJTAGatewayStackTrace

JTA GatewayStackTrace

com.bea.core.debug.DebugJTAHealth

JTAヘルス

com.bea.core.debug.DebugJTAJDBC 

JTA JDBC

com.bea.core.debug.DebugJTALifecycle 

JTAライフサイクル

com.bea.core.debug.DebugJTALLR

JTA LLR

com.bea.core.debug.DebugJTAMigration

JTA移行

com.bea.core.debug.DebugJTANaming 

JTAネーミング

com.bea.core.debug.DebugJTANamingStackTrace 

JTA NamingStackTrace

com.bea.core.debug.DebugJTANonXA

JTA NonXA

com.bea.core.debug.DebugJTAPropagate

JTAの伝播

com.bea.core.debug.DebugJTARecovery 

JTAのリカバリ

com.bea.core.debug.DebugJTAResourceHealth 

JTA ResourceHealth

com.bea.core.debug.DebugJTATLOG 

JTA TLOG

com.bea.core.debug.DebugJTAXA 

JTA XA

com.bea.core.debug.DebugJTAXAStackTrace 

JTA XAStackTrace

com.bea.core.debug.DebugNetIO

NetIO

com.bea.core.debug.DebugOX

OSGiからJMX (OX)へ

com.bea.core.debug.DebugOX.stdout

OSGiからJMX (OX)へ - デバッグが標準出力に送られます。

com.bea.core.debug.DebugSCP

簡易構成プロバイダ

com.bea.core.debug.DebugSCP.stdout

Simple Configuration Providerのデバッグ文字列がstdoutに送られます

com.bea.core.debug.DebugSDS

単純な宣言サービス

com.bea.core.debug.DebugSDS.stdout

SDSデバッグ文字列がstdoutに送られます

com.bea.core.debug.DebugServiceHelper

サービス・ヘルパー

com.bea.core.debug.DebugServiceHelper.stdout

サービス・ヘルパーのデバッグ文字列がstdoutに送られます

com.bea.core.debug.DebugStoreAdmin 

ストア管理

com.bea.core.debug.DebugStoreIOLogical

ストアIOLogical

com.bea.core.debug.DebugStoreIOLogicalBoot 

ストアIOLogicalBoot

com.bea.core.debug.DebugStoreIOPhysical

ストアIOPhysical

com.bea.core.debug.DebugStoreIOPhysicalVerbose

ストアIOPhysicalVerbose

com.bea.core.debug.DebugStoreXA 

ストアXA

com.bea.core.debug.DebugStoreXAVerbose 

ストアXAVerbose

com.bea.core.debug.servicehelper.dumpstack

サービス・ヘルパーがタイムアウトしたときにスタック・トレースをダンプします。


次の項では、これらのOracle Event Processingデバッグ・オプションの使用方法を説明します。

Log4jロギングを使用している場合、15.3.4項「Log4jロギングのデバッグ」を参照してください。

15.5.1 システム・プロパティを使用したOracle Event Processingデバッグ・オプションの構成方法

システム・プロパティを使用してデバッグを構成するには、次のステップを実行します。

この手順では、Oracle Event Processingサーバーstartwlevs.shファイルを使用して、Simple Declarative Services (SDS)デバッグ(表15-6からのcom.bea.core.debug.DebugSDS)をオンにします。

システム・プロパティを使用してOracle Event Processingデバッグ・オプションを構成するには:

  1. 表15-6DebugSDSフラグを検索します。

    com.bea.core.debug.DebugSDS
    
  2. フラグの前に-Dを付けてプロパティを作成します。

    -Dcom.bea.core.debug.DebugSDS
    
  3. プロパティをtrueに設定してこのデバッグ・フラグを有効にします。

    -Dcom.bea.core.debug.DebugSDS=true
    
  4. このプロパティとstartwlevs.shを使用して、Oracle Event Processingサーバーを起動します。

    ./startwlevs.sh -Dcom.bea.core.debug.DebugSDS=true
    

15.5.2 構成ファイルを使用したOracle Event Processingデバッグ・オプションの構成方法

構成ファイルからデバッグを構成するには、次の手順を実行します。

この手順では、Oracle Event Processingサーバーconfig.xmlファイルのSimple Declarative Services (SDS)デバッグ(表15-6からのcom.bea.core.debug.DebugSDS)をオンにします。

構成ファイルを使用してOracle Event Processingデバッグ・オプションを構成するには:

  1. 表15-6DebugSDSフラグを検索します。

    com.bea.core.debug.DebugSDS
    
  2. フラグ名からcom.bea.core.debug.パッケージ名を省略してXMLタグを作成します。

    <DebugSDS></DebugSDS>
    
  3. 例15-5で示すように、Oracle Event Processingサーバーconfig.xmlファイルを編集して、debug要素とともにdebug-properties子要素を追加します。

  4. 例15-5で示すように、DebugSDS要素をdebug-properties要素に追加します。

  5. 例15-5で示すように、DebugSDS要素をtrueに設定してこのデバッグ・フラグを有効にします。

    例15-5 デバッグ・フラグ用のdebug-properties要素の作成

    <config>
       <debug>
          <debug-properties>
             <DebugSDS>true</DebugSDS>
          </debug-properties>
       </debug>
    
    </config>
    
  6. 例15-6で示すように、logging-service要素のlogger-severityDebugに設定します。

  7. 例15-6で示すように、log-stdout要素のstdout-severityDebugに設定します。

    例15-6 デバッグ・ロギングの有効化

    <config>
       <debug>
          <debug-properties>
             <DebugSDS>true</DebugSDS>
          </debug-properties>
       </debug>
    
       <logging-service>
          <logger-severity>Debug</logger-severity>
          <stdout-config>logStdout</stdout-config>
          <log-file-config>logFile</log-file-config>
       </logging-service>
    
       <log-file>
       <name>logFile</name>
       <log-file-severity>Debug</log-file-severity>
       <number-of-files-limited>true</number-of-files-limited>
       <rotated-file-count>4</rotated-file-count>
       <rotate-log-on-startup-enabled>true</rotate-log-on-startup-enabled>
       </log-file>
    
       <log-stdout>
          <name>logStdout</name>
          <stdout-severity>Debug</stdout-severity>
       </log-stdout>
    </config>