ヘッダーをスキップ
Oracle® Complex Event Processing管理者ガイド
11g リリース1 (11.1.1)
B61653-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

14 Oracle CEPのロギングとデバッグの構成

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

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

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

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

Oracle CEPでは、次のロギング・システムがサポートされています。

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


注意:

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

14.1.1 Commons Apacheロギング・フレームワーク

Oracle CEPでは、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を参照してください。

14.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"
    );
    

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

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

TRACEDEBUGINFONOTICEWARNINGERRORCRITICALALERTEMERGENCY

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

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

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

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

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

重大度 意味
TRACE

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

DEBUG

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

INFO

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

NOTICE

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

WARNING

問題のあるオペレーションまたは構成があったが、通常のオペレーションに支障は生じません。

ERROR

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

CRITICAL

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

ALERT

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

EMERGENCY

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


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

14.1.1.3 ログ・ファイル

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

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

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

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

14.1.1.4 ログ・メッセージ形式

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

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

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

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

サーバー・ログ・ファイル内のメッセージの例を次に示します。

####<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>
14.1.1.4.2 コンソールへの出力、標準出力および標準エラーの形式

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

前の節のメッセージが標準出力にどのように出力されるかを次の例に示します。

<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>

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

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

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

14.1.3 Log4jロガー

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

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

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

14.1.3.1 ロガー

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

14.1.3.2 アペンダ

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

14.1.3.3 レイアウト

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

14.2 Oracle CEPロギング・サービスの構成

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

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

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

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

例14-1 ロギング構成を含むOracle CEPサーバー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 CEPロギングの構成について説明します。

14.2.1 logging-service

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

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

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

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

log-file-config
String

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

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

stdout-config 
String

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

logger-severity
String

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

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

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

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

logger-severity-properties

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

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

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


14.2.2 log-file

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

表14-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です。


14.2.3 log-stdout

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

表14-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です。


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

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

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

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

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

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

    例14-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要素を次のいずれかに設定します。

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

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

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

      Adapters

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

      Cache

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

      Channel

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

      CQLProcessor

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

      EplProcessor

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

      Ede

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

      EventTrace

      InfoまたはDebugに設定すると、すべてのアプリケーションのEPN内で動向中のイベントをトレースできます。Oracle CEP 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 CEPサーバーからのログ・メッセージおよびアプリケーション・ライフサイクル操作に適用されます。

      Management

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

      Monitor

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

      Recplay

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

      Spring

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

      Stream

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


      例:

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

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

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

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

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

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

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

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

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

    例:

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

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

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

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

14.3 Log4jロギングの構成

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

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

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

14.3.1 log4jプロパティの構成

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

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

例14-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

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

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

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

14.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出力に失敗した場合または暗号エラー・メッセージが返された場合に使用します。

14.3.4 Log4jロギングのデバッグ

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

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

14.4 Apache Commons Logging APIの使用

server.logおよびconsoleoutput.logファイルにアプリケーション固有のメッセージをログするためにOracle CEPアプリケーション内のApache Commons logging 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ログ・メソッドは、メッセージをサーバー・ログに送ります。

例14-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");
  }
}

14.5 Oracle CEPデバッグ・オプションの構成

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

表14-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 CEPデバッグ・オプションの使用方法を説明します。

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

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

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

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

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

  1. 表14-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 CEPサーバーを起動します。

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

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

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

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

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

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

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

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

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

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

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

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

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

    例14-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>