この章は、Oracle Event Processingのロギングとデバッグの構成方法を、Oracle Event Processingロギング・サービス、Log4j、およびApache CommonsロギングAPIの使用と、デバッグ・オプションの構成を含めて説明します。
この章の内容は次のとおりです。
システム管理者と開発者は、ロギング出力を構成し、ログ・メッセージをフィルタ処理してエラーをトラブルシューティングしたり、特定のイベントの通知を受信したりします。
次に、ロギングの構成シナリオの一部を示します。
DEBUG
メッセージおよびINFO
メッセージがログ・ファイルに記録されないようにします。
HTTPサブシステムからのINFO
レベルのメッセージを、標準出力ではなくログ・ファイルにパブリッシュできるようにします。
重大度がWARNING
以上のメッセージをハンドラがパブリッシュするように指定します。
Oracle Event Processingサーバー全体のデフォルトのロギング・レベルを指定し、特定のOracle Event Processingモジュールにデフォルトのロギング・レベルをオーバーライドさせます。たとえば、サーバーのデフォルトのロギング・レベルをWARNING
にする一方、CEPモジュールのロギング・レベルをDEBUG
にすることができます。
Oracle Event Processingにデプロイしたユーザー・アプリケーションのロギング・レベルを構成します。この場合、アプリケーションのログ・メッセージをサーバー全体の1個のログ・ファイルに出力する必要があり、サーバー自体のモジュールからもそのログ・ファイルにメッセージを記録する場合は、Commons Apacheロギング・フレームワークをアプリケーションで使用する必要があります。
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』のログ・メッセージ・カタログの管理に関する項を参照してください。 |
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
を参照してください。
ここでは、システム・プロパティを使用してログ・ファクトリを設定する方法について説明します。
最高の優先度はシステム・プロパティ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" );
各ログ・メッセージには重大度レベルが関連付けられています。レベルによって、ログ・メッセージの重要性と緊急度が大まかに示されます。TRACE
からEMERGENCY
までの重大度があらかじめ定義されており、これらの重大度は、ログ・リクエストがロガーにディスパッチされるとログ・レベルに変換されます。ログ・レベル・オブジェクトは、次の値(影響の少ない低レベル(左端)から影響の大きい高レベル(右端)の順で並んでいる)のいずれかを指定できます。
TRACE
、DEBUG
、INFO
、NOTICE
、WARNING
、ERROR
、CRITICAL
、ALERT
、EMERGENCY
ロガー、ハンドラ、およびユーザー・アプリケーションに対してログの重大度レベルを設定できます。ロガーに対して重大度を設定した場合、いずれのハンドラも、ロガーによって拒否されたイベントを受信しません。たとえば、ロガーに対してログ・レベルをNOTICE
に設定した場合、ハンドラは、INFO
レベルのイベントを受信しません。ハンドラに対してログ・レベルを設定した場合、制約はそのハンドラのみに適用され、他のハンドラには適用されません。たとえば、ファイル・ハンドラに対してDEBUG
をオフにすると、DEBUG
メッセージはログ・ファイルには書き込まれませんが、DEBUG
メッセージは標準出力には書き込まれます。
ユーザー(Oracle Event Processingモジュールの所有者またはユーザー・アプリケーションの所有者)は、個別モジュールに対してApache commonsロギングで使用されるロギング・カテゴリ・タイプを表す名前を自由に定義できます。ただし、カテゴリ名がパッケージ名として定義されている場合は、ネーミング・ルールに基づいて、ロギング・レベル階層がデフォルトで想定されます。たとえば、2つのモジュールのロギング・カテゴリ名がcom.oracle.foo
とcom.oracle.foo.bar
である場合は、com.oracle.foo
がcom.oracle.foo.bar
のルート・ノードになります。このように、子ノードが親をオーバーライドしないかぎり、親ノード(com.oracle.foo
)に適用されるロギング・レベルが自動的にcom.oracle.foo.bar
に適用されます。
つまり、明示的に重大度が構成された最も近い親から重大度が継承されないかぎり、ノードに対して指定されているロギングの重大度が有効です。ルート・ノードは常に明示的に構成されるため、その他の設定がされていない場合は、すべてのノードがルートから重大度を継承します。
表15-1にログ・メッセージの重大度レベルを示します。
表15-1 ログ・メッセージ重大度
重大度 | 意味 |
---|---|
TRACE |
診断アクション・ライブラリからのメッセージの場合に使用します。サーバーおよびアプリケーション・クラスの診断インストゥルメンテーションを有効にすると、 |
DEBUG |
デバッグ・メッセージが生成されました。 |
INFO |
通常の処理を報告するために使用する、低レベルの情報メッセージ。 |
NOTICE |
重要度が高い情報メッセージ。 |
WARNING |
不審なオペレーションまたは構成が発生しましたが、通常のオペレーションには影響しません。 |
ERROR |
ユーザー・エラーが発生したことを示します。システムまたはアプリケーションでは、割込みやサービスの限定的な低下を起こすことなくエラーに対処できます。 |
CRITICAL |
システム・エラーまたはサービス・エラーが発生したことを示します。システムは回復できますが、サービスの一時的な損失や永久的な低下が発生する場合があります。 |
ALERT |
システムの特定のサービスだけが使用不能の状態にある。自動回復を実行できない。自動回復を実行できません。この問題を解決するには、管理者がすぐに措置を講じる必要があります。 |
EMERGENCY |
サーバーが使用不能な状態にあります。この重大度は、重大なシステム障害または問題があることを示します。 |
システムでは、重大度の低いメッセージが数多く生成され、重大度の高いメッセージは少なくなります。たとえば、通常の環境では、INFO
メッセージが多く生成され、EMERGENCY
メッセージは生成されません。
デフォルトでは、Oracle Event ProcessingサーバーはORACLE_CEP_HOME
/user_projects/domains/
DOMAIN_DIR/
servernameディレクトリの
server.logとconsoleoutput.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項「コンソールへの出力、標準出力および標準エラーの形式」を参照してください。
Oracle Event Processingサーバーは書き込むログ・ファイルの種類によって、異なる形式でログ・メッセージを書き込みます。
ログ・ファイルの詳細は、15.1.1.3項「ログ・ファイル」を参照してください。
システムはメッセージを指定されたログ・ファイルに書き込みます。メッセージは、####
接頭辞、タイムスタンプ
、重大度
、サブシステム
、サーバー名
、接続
、スレッド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>
システムはメッセージをコンソール、標準出力または標準エラーに書き込みます。メッセージは、ロケール形式のタイムスタンプ
、重大度
、サブシステム
、メッセージ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>
Oracle Event Processingには、OSGiフレームワークよりも前に起動する低レベルのフレームワーク・ロガーがあります。このロガーはOSGiフレームワーク内部のロギング・イベントを報告するために使用され、ロギング・サブシステムが構成されるまでロギング・サブシステムのカスタム・デフォルトとして機能します。
たとえば、ユーザーに表示されるログ・メッセージのレベルまたは重大度はconfig.xml
での設定より低く、コンソールのLauncherコマンド・ラインまたはログ・ファイルでの設定と同じまたはそれより高い可能性があります。ロギング・サブシステムが起動するまで、ログ・メッセージはフレームワーク・ロガーから送信され、フレームワークのロギング・レベルを使用してメッセージがフィルタ処理されます。
Log4jは、アプリケーションにログ文を指定するために開発されたオープン・ソースのツールです。Log4jには3つの主要なコンポーネントがあります。
Log4j Javaロギング機能は、Apache FoundationのJakartaプロジェクトによって開発されました。次を参照してください。
Log4jプロジェクトは、http://logging.apache.org/log4j/
を参照してください。
Log4j APIは、http://logging.apache.org/log4j/1.2/apidocs/index.html
を参照してください。
Log4jの簡単な説明は、http://logging.apache.org/log4j/1.2/manual.html
を参照してください。
詳細は、15.3項「Log4jロギングの構成」を参照してください。
Log4jでは、Logger
クラスを定義します。1つのアプリケーションで、それぞれが一意の名前を持つ複数のロガーを作成できます。Log4jの一般的な使用方法では、アプリケーションで、ログ・メッセージを出力する各アプリケーション・クラスのLogger
インスタンスが作成されます。ロガーはネームスペースの階層内に存在し、その階層における上位クラスから動作を継承します。
Log4jには、ロギング出力の宛先を表すアペンダ(ハンドラ)を定義します。複数のアペンダを定義できます。たとえば、1つのアプリケーションで、ログ・メッセージを標準出力に送信するアペンダと、ログ・メッセージをファイルに書き込むアペンダを定義できます。個々のロガーを構成して、0以上のアペンダに書き込むように構成することもできます。一例としては、すべてのロギング・メッセージ(全レベル)をログ・ファイルに送信する一方で、標準出力にはERROR
レベル・メッセージのみを送信する使用方法があります。
Log4jには、ログ・メッセージのフォーマットを制御するためのレイアウトが定義されています。各レイアウトは特定のメッセージ・フォーマットを指定します。特定のレイアウトが各アペンダに関連付けられています。これにより、標準出力に対してファイル出力とは異なるログ・メッセージ・フォーマットを指定できます。例:
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ロギングの構成について説明します。
この項では、logging-service
要素について説明します。
表15-2 logging-serviceの構成パラメータ
パラメータ | タイプ | 説明 |
---|---|---|
name |
String |
この構成オブジェクトの名前。 |
log-file-config |
String |
ログ・ファイルとそのローテーション・ポリシーの構成。 15.2.2項「log-file」を参照してください。 |
stdout-config |
String |
|
logger-severity |
String |
ハンドラに伝播されるメッセージのしきい値の重要度を定義します。 デフォルト値は、
有効な値は次のとおりです: |
logger-severity-properties |
1つ以上の |
15.2.4項「個別モジュールの重大度の構成」を参照してください。 |
この項では、log-file
要素について説明します。
表15-3 log-fileの構成パラメータ
パラメータ | タイプ | 説明 |
---|---|---|
name |
String |
この構成オブジェクトの名前。 |
base-log-file-name |
String |
ログ・ファイル名。デフォルト値は |
log-file-severity |
String |
ログ・ファイルに書き込む最も重大度の低いメッセージを指定します。デフォルト値は 有効な値は次のとおりです:
|
log-file-rotation-dir |
String |
ローテーションされた古いファイルを格納するディレクトリを指定します。 設定しない場合、古いファイルは基準ログ・ファイルと同じディレクトリに格納されます。 |
rotation-type |
String |
ローテーションをサイズに基づいて実行するか、時間に基づいて実行するか、または実行しないかを指定します。 有効な値は次のとおりです:
|
rotation-time |
String |
時間は デフォルトは |
rotation-time-span-factor |
Long |
時間ベースのログ・ローテーションの頻度となるミリ秒数を決定するために、時間間隔に適用される係数。デフォルトは |
rotated-file-count |
Integer |
|
rotation-size |
Integer |
ログ・ファイルがローテーションされるサイズのしきい値(KB単位)。デフォルトは |
rotation-time-span |
Integer |
時間ベースのすべてのログ・ローテーションについて、間隔を指定します。デフォルト値は |
rotate-log-on-startup-enabled |
Boolean |
|
number-of-files-limited |
Boolean |
|
この項では、log-stdout
要素について説明します。
表15-4 log-stdoutの構成パラメータ
パラメータ | タイプ | 説明 |
---|---|---|
name |
String |
この構成オブジェクトの名前。 |
stdout-severity |
String |
stdoutに送信されるメッセージのしきい値の重大度。デフォルト値は 有効な値は次のとおりです:
|
stack-trace-depth |
Integer |
stdoutに表示するスタック・トレース・フレームの数。 デフォルト値 |
stack-trace-enabled |
Boolean |
trueの場合、ログに記録されたメッセージにスタック・トレースが含まれているときは、スタック・トレースがコンソールにダンプされます。デフォルト値は |
Oracle Event Processingの個別モジュールはロギングの重大度を指定できます。この重大度はOracle Event Processingサーバーのデフォルトのロギング重大度をオーバーライドします。
これは、Oracle Event Processingサーバーconfig.xml
ファイルのlogger-severity-properties
要素にentry
子要素を指定して実行します。任意の数のモジュールに対して複数のentry
子要素を指定できます。
個別モジュールの重大度を構成するには:
Oracle Event Processingサーバーconfig.xml
ファイルを編集します。
例15-2
で示すように、logger-severity-properties
要素にentry子要素を追加します。
key
要素を次のいずれかに設定します。
コンポーネント名: 表15-5に示すコンポーネント名定数。
表15-5 ロギング・コンポーネント名定数
コンポーネント名定数 | 説明 |
---|---|
|
Oracle Event Processingサーバー上で実行中のアダプタ・インスタンスからのログ・メッセージに適用されます。 |
|
Oracle Event Processingサーバー上で実行中のキャッシュ・システムおよびキャッシュ・インスタンスからのログ・メッセージに適用されます。 |
|
Oracle Event Processingサーバー上で実行中のチャネルからのログ・メッセージに適用されます。 |
|
Oracle Event Processingサーバー上で実行中のOracle CQLプロセッサからのログ・メッセージに適用されます。 |
|
各CQLプロセッサのコアにあるCQLEngineからのログ・メッセージに適用されます。 |
|
各CQLプロセッサのコアにあるCQLEngineからのログ・メッセージに適用されます。 |
|
クラスタリングに関連するメッセージを含む、Oracle Coherenceからのログ・メッセージに適用されます。 ここに入力する値は、次の方法でOracle Coherenceの重大度レベルにマップされます。 Error: 1 Warning: 2 Notice: 3 Info: 4 Debug: 5 Trace: 9 構成内の |
|
Oracle Event Processingサーバー上で実行中のEPLプロセッサからのログ・メッセージに適用されます。 |
|
Oracle Event Processingサーバー・イベント・ディスパッチ・インフラストラクチャのイベント駆動環境からのログ・メッセージに適用されます。 |
|
<May 26, 2009 5:53:49 PM PDT> <Info> <EventTrace> <BEA-000000> <Application [helloworld], Stage [helloworldOutputChannel] received insert event>
<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]> |
|
Oracle Event Processingサーバーからのログ・メッセージおよびアプリケーション・ライフサイクル操作に適用されます。 |
|
Oracle Event Processingサーバーの一般的なJMX関連管理のAPI操作からのログ・メッセージに適用されます。 |
|
Oracle Event Processingサーバー・モニタリング・サービスからのログ・メッセージに適用されます。 |
|
Oracle Event Processingサーバーのイベント記録および再生操作からのログ・メッセージに適用されます。 |
|
Springコンテナ操作からのログ・メッセージに適用されます。 |
|
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リファレンスを参照してください。
value
要素に重大度レベルを設定します。
15.1.1.2項「ログの重大度レベルの使用」を参照してください。
例:
<entry> <key>CQLProcessor</key> <value>Debug</value> </entry>
例15-2
で示すように、この重大度レベルはkey
要素に指定したモジュールに適用され、logger-severity要素に設定されたデフォルトのOracle Event Processingサーバー・ロギング重大度レベルをオーバーライドします。
その他のモジュールに対して、ステップ2からのステップを繰り返します。
config.xml
ファイルを保存して閉じます。
Oracle Event Processingはオープン・ソースlog4jロギング・システムをサポートします。
この節では、次のタスクについて説明します。
詳細は、15.1.3項「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
次の必要なLog4jパッケージをインポートするためにアプリケーションのMANIFEST.MF
ファイルを更新します。
Import-Package: org.apache.log4j;version="1.2.13", org.apache.log4j.config;version="1.2.13", ...
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出力に失敗した場合または暗号エラー・メッセージが返された場合に使用します。
log4j出力に失敗した場合または暗号エラー・メッセージが返された場合に、-Dlog4j.debug=true
のコマンド・ライン・プロパティをコマンド・ラインで使用します。
詳細は、15.3.3項「Log4jロギングの有効化」を参照してください。
Oracle Event Processingのserver.log
およびconsoleoutput.log
ファイルにアプリケーション固有のメッセージを記録するために、Oracle Event Processingアプリケーション内のApache CommonsロギングAPIを使用できます。
commonsロギングAPIを使用するには:
システム・プロパティorg.apache.commons.logging.LogFactory
をweblogic.logging.commons.LogFactoryImpl
に設定します。
このLogFactory
は、org.apache.commons.logging.Log
インタフェースを実装するweblogic.logging.commons.LogFactoryImpl
のインスタンスを作成します。
LogFactory
から、名前を基準にCommons Log
オブジェクトへの参照を取得します。
この名前は、ログ・ファイル内でサブシステム名として表示されます。
Log
オブジェクトを使用して、ロギング・サービスにログ・リクエストを発行します。
Commons Log
インタフェース・メソッドは、オブジェクトを受け付けます。ほとんどの場合、これはメッセージ・テキストを含む文字列です。
Commons LogObject
は、コンストラクタにメッセージID、サブシステム名、および文字列メッセージ引数を取り込みます。http://jakarta.apache.org/commons/logging/api/index.html
のorg.apache.commons.loggingを参照してください。
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-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ロギングのデバッグ」を参照してください。
システム・プロパティを使用してデバッグを構成するには、次のステップを実行します。
この手順では、Oracle Event Processingサーバーstartwlevs.sh
ファイルを使用して、Simple Declarative Services (SDS)デバッグ(表15-6からのcom.bea.core.debug.DebugSDS
)をオンにします。
システム・プロパティを使用してOracle Event Processingデバッグ・オプションを構成するには:
表15-6
でDebugSDSフラグを検索します。
com.bea.core.debug.DebugSDS
フラグの前に-D
を付けてプロパティを作成します。
-Dcom.bea.core.debug.DebugSDS
プロパティをtrue
に設定してこのデバッグ・フラグを有効にします。
-Dcom.bea.core.debug.DebugSDS=true
このプロパティとstartwlevs.sh
を使用して、Oracle Event Processingサーバーを起動します。
./startwlevs.sh -Dcom.bea.core.debug.DebugSDS=true
構成ファイルからデバッグを構成するには、次の手順を実行します。
この手順では、Oracle Event Processingサーバーconfig.xml
ファイルのSimple Declarative Services (SDS)デバッグ(表15-6からのcom.bea.core.debug.DebugSDS
)をオンにします。
構成ファイルを使用してOracle Event Processingデバッグ・オプションを構成するには:
表15-6
でDebugSDSフラグを検索します。
com.bea.core.debug.DebugSDS
フラグ名からcom.bea.core.debug.
パッケージ名を省略してXMLタグを作成します。
<DebugSDS></DebugSDS>
例15-5
で示すように、Oracle Event Processingサーバーconfig.xml
ファイルを編集して、debug
要素とともにdebug-properties子要素を追加します。
例15-5
に示すように、DebugSDS
要素をdebug-properties要素に追加します。
例15-5
に示すように、DebugSDS
要素をtrueに設定してこのデバッグ・フラグを有効にします。
例15-6
に示すように、logging-service
要素のlogger-severity
をDebugに設定します。
例15-6
に示すように、log-stdout
要素のstdout-severity
をDebugに設定します。
例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>