この節では、以下の項目について説明します。
システム管理者と開発者は、ロギング出力を構成し、ログ・メッセージをフィルタ処理してエラーをトラブルシューティングしたり、特定のイベントの通知を受信したりします。
以下に、ロギングの構成シナリオの一部を示します。
DEBUG
メッセージおよびINFO
メッセージがログ・ファイルに記録されないようにします。
HTTPサブシステムからのINFO
レベルのメッセージを、標準出力ではなくログ・ファイルにパブリッシュできるようにします。
重大度がWARNING
以上のメッセージをハンドラがパブリッシュするように指定します。
Oracle CEPサーバー全体のデフォルトのロギング・レベルを指定し、特定のOracle CEPモジュールにデフォルトのロギング・レベルをオーバーライドさせます。たとえば、サーバーのデフォルトのロギング・レベルをWARNING
にする一方、CEPモジュールのロギング・レベルをDEBUG
にすることができます。
Oracle CEPにデプロイしたユーザー・アプリケーションのロギング・レベルを構成します。この場合、アプリケーションのログ・メッセージをサーバー全体の1個のログ・ファイルに出力する必要があり、サーバー自体のモジュールからもそのログ・ファイルにメッセージを記録する場合は、Commons Apacheロギング・フレームワークをアプリケーションで使用する必要があります。
Oracle CEPでは、次のロギング・システムがサポートされています。
Oracle CEPでは、様々なデバッグ・オプションも提供されます。これらのオプションを有効または無効にすることにより、使用するOracle CEPアプリケーションを診断できます。詳細は、14.5項「Oracle CEPデバッグ・オプションの構成」を参照してください。
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
を参照してください。
ここでは、システム・プロパティを使用してログ・ファクトリを設定する方法について説明します。
最高の優先順位はシステム・プロパティ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 CEPモジュールの所有者またはユーザー・アプリケーションの所有者)は、個別モジュールに対してApache commons loggingで使用されるロギング・カテゴリ・タイプを表す名前を自由に定義できます。ただし、カテゴリ名がパッケージ名として定義されている場合は、ネーミング・ルールに基づいて、ロギング・レベル階層がデフォルトで想定されます。たとえば、2つのモジュールのロギング・カテゴリ名がcom.oracle.foo
とcom.oracle.foo.bar
である場合は、com.oracle.foo
がcom.oracle.foo.bar
のルート・ノードになります。このように、子ノードが親をオーバーライドしないかぎり、親ノード(com.oracle.foo
)に適用されるロギング・レベルが自動的にcom.oracle.foo.bar
に適用されます。
つまり、明示的に重大度が構成された最も近い親から重大度が継承されないかぎり、ノードに対して指定されているロギングの重大度が有効です。ルート・ノードは常に明示的に構成されるため、その他の設定がされていない場合は、すべてのノードがルートから重大度を継承します。
表14-1にログ・メッセージの重大度レベルを示します。
表14-1 ログ・メッセージ重大度
重大度 | 意味 |
---|---|
TRACE |
診断アクション・ライブラリからのメッセージの場合に使用します。サーバーおよびアプリケーション・クラスの診断インストゥルメンテーションを有効にすると、 |
DEBUG |
デバッグ・メッセージが生成されました。 |
INFO |
通常の処理を報告するために使用する、低レベルの情報メッセージ。 |
NOTICE |
重要度が高い情報メッセージ。 |
WARNING |
問題のあるオペレーションまたは構成があったが、通常のオペレーションに支障は生じません。 |
ERROR |
ユーザー・エラーが発生したことを示します。システムまたはアプリケーションでは、割込みやサービスの限定的な低下を起こすことなくエラーに対処できます。 |
CRITICAL |
システム・エラーまたはサービス・エラーが発生したことを示します。システムを回復できるが、サービスの一時的な損失や永久的な低下が発生する場合があります。 |
ALERT |
システムの特定のサービスのみが使用不能の状態にあります。自動リカバリを実行できません。この問題を解決するには管理者がすぐに措置を講じる必要があります。 |
EMERGENCY |
サーバーが使用不能な状態にあります。この重大度は、重大なシステム障害または問題があることを示します。 |
システムでは、重大度の低いメッセージが数多く生成され、重大度の高いメッセージは少なくなります。たとえば、通常の環境では、INFO
メッセージが多く生成され、EMERGENCY
メッセージは生成されません。
デフォルトでは、Oracle CEPサーバーはORACLE_CEP_HOME
/user_projects/domains/
DOMAIN_DIR
/
servername
ディレクトリのserver.log
とconsoleoutput.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項「コンソールへの出力、標準出力および標準エラーの形式」を参照してください。
Oracle CEPサーバーは書き込むログ・ファイルの種類によって、異なる形式でログ・メッセージを書き込みます。
ログ・ファイルの詳細は、14.1.1.3項「ログ・ファイル」を参照してください。
システムはメッセージを指定されたログ・ファイルに書き込みます。メッセージは、####
接頭辞、タイムスタンプ
、重大度
、サブシステム
、サーバー名
、接続
、スレッド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>
システムはメッセージをコンソール、標準出力または標準エラーに書き込みます。メッセージは、ロケール形式のタイムスタンプ
、重大度
、サブシステム
、メッセージ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>
Oracle CEPには、OSGiフレームワークよりも前に起動する低レベルのフレームワーク・ロガーがあります。このロガーはOSGiフレームワーク内部のロギング・イベントを報告するために使用され、ロギング・サブシステムが構成されるまでロギング・サブシステムのカスタム・デフォルトとして機能します。
たとえば、ユーザーに表示されるログ・メッセージのレベルまたは重大度はconfig.xml
での設定より低く、コンソールのLauncherコマンド・ラインまたはログ・ファイルでの設定と同じまたはそれより高い可能性があります。ロギング・サブシステムが起動するまで、ログ・メッセージはフレームワーク・ロガーから送信され、フレームワークのロギング・レベルを使用してメッセージがフィルタ処理されます。
Log4jは、アプリケーションにログ・ステートメントを指定するために開発されたオープン・ソースのツールです。Log4jには3つの主要なコンポーネントがあります。
Log4j Javaロギング機能は、Apache FoundationのJakartaプロジェクトによって開発されました。以下を参照してください。
Log4jプロジェクトは、http://logging.apache.org/log4j/docs/
を参照してください。
Log4j APIは、http://logging.apache.org/log4j/docs/api/index.html
を参照してください。
log4jの簡単な紹介は、http://logging.apache.org/log4j/docs/manual
を参照してください。
詳細は、14.3項「Log4jロギングの構成」を参照してください。
Log4jでは、Logger
クラスを定義します。1つのアプリケーションで、それぞれが一意の名前を持つ複数のロガーを作成できます。Log4jの一般的な使用方法では、アプリケーションで、ログ・メッセージを出力する各アプリケーション・クラスのLogger
インスタンスが作成されます。ロガーはネームスペースの階層内に存在し、その階層における上位クラスから動作を継承します。
Log4jには、ロギング出力の宛先を表すアペンダ(ハンドラ)を定義します。複数のアペンダを定義できます。たとえば、1つのアプリケーションで、ログ・メッセージを標準出力に送信するアペンダと、ログ・メッセージをファイルに書き込むアペンダを定義できます。個々のロガーを構成して、0以上のアペンダに書き込むように構成することもできます。一例としては、すべてのロギング・メッセージ(全レベル)をログ・ファイルに送信する一方で、標準出力にはERROR
レベル・メッセージのみを送信する使用方法があります。
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ロギングの構成について説明します。
この項では、logging-service
要素について説明します。
表14-2 logging-serviceの構成パラメータ
パラメータ | タイプ | 説明 |
---|---|---|
name |
String |
この構成オブジェクトの名前。 |
log-file-config |
String |
ログ・ファイルとそのローテーション・ポリシーの構成。 14.2.2項「log-file」を参照してください。 |
stdout-config |
String |
|
logger-severity |
String |
ハンドラに伝播されるメッセージのしきい値の重要度を定義します。 デフォルト値は、
有効な値は次のとおりです: |
logger-severity-properties |
1つ以上の |
14.2.4項「個別モジュールの重大度の構成」を参照してください。 |
この項では、log-file
要素について説明します。
表14-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
要素について説明します。
表14-4 log-stdoutの構成パラメータ
パラメータ | タイプ | 説明 |
---|---|---|
name |
String |
この構成オブジェクトの名前。 |
stdout-severity |
String |
stdoutに送信されるメッセージのしきい値の重大度。デフォルト値は 有効な値は次のとおりです:
|
stack-trace-depth |
Integer |
stdoutに表示するスタック・トレース・フレームの数。 デフォルト値 |
stack-trace-enabled |
Boolean |
trueの場合、ログに記録されたメッセージにスタック・トレースが含まれているときは、スタック・トレースがコンソールにダンプされます。デフォルト値は |
Oracle CEPの個別モジュールはロギングの重大度を指定できます。この重大度はOracle CEPサーバーのデフォルトのロギング重大度をオーバーライドします。
これは、Oracle CEPサーバーconfig.xml
ファイルのlogger-severity-properties
要素にentry
子要素を指定して実行します。任意の数のモジュールに対して複数のentry
子要素を指定できます。
個別モジュールの重大度を構成するには:
Oracle CEPサーバーconfig.xml
ファイルを編集します。
例14-2に示すように、logger-severity-properties
要素にentry
子要素を追加します。
key
要素を次のいずれかに設定します。
コンポーネント名: 表14-5に示すコンポーネント名定数。
表14-5 ロギング・コンポーネント名定数
コンポーネント名定数 | 説明 |
---|---|
|
Oracle CEPサーバー上で実行中のアダプタ・インスタンスからのログ・メッセージに適用されます。 |
|
Oracle CEPサーバー上で実行中のキャッシュ・システムおよびキャッシュ・インスタンスからのログ・メッセージに適用されます。 |
|
Oracle CEPサーバー上で実行中のチャネルからのログ・メッセージに適用されます。 |
|
Oracle CEPサーバー上で実行中のOracle CQLプロセッサからのログ・メッセージに適用されます。 |
|
Oracle CEPサーバー上で実行中のEPLプロセッサからのログ・メッセージに適用されます。 |
|
Oracle CEPサーバー・イベント・ディスパッチ・インフラストラクチャのイベント駆動環境からのログ・メッセージに適用されます。 |
|
<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 CEPサーバーからのログ・メッセージおよびアプリケーション・ライフサイクル操作に適用されます。 |
|
Oracle CEPサーバーの一般的なJMX関連管理のAPI操作からのログ・メッセージに適用されます。 |
|
Oracle CEPサーバー・モニタリング・サービスからのログ・メッセージに適用されます。 |
|
Oracle CEPサーバーのイベント記録および再生操作からのログ・メッセージに適用されます。 |
|
Springコンテナ操作からのログ・メッセージに適用されます。 |
|
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リファレンス』を参照してください。
value
要素に重大度レベルを設定します。
14.1.1.2項「ログの重大度レベルの使用」を参照してください。
例:
<entry> <key>CQLProcessor</key> <value>Debug</value> </entry>
例14-2に示すように、この重大度レベルはkey
要素に指定したモジュールに適用され、logger-severity
要素に設定されたデフォルトのOracle CEPサーバー・ロギング重大度レベルをオーバーライドします。
その他のモジュールに対して、ステップ2からのステップを繰り返します。
config.xml
ファイルを保存して閉じます。
Oracle CEPはオープン・ソースlog4jロギング・システムをサポートします。
この節では、以下のタスクについて説明します。
詳細は、14.1.3項「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
次の必要な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
のコマンド・ライン・プロパティをコマンド・ラインで使用します。
詳細は、14.3.3項「Log4jロギングの有効化」を参照してください。
server.log
およびconsoleoutput.log
ファイルにアプリケーション固有のメッセージをログするためにOracle CEPアプリケーション内のApache Commons logging 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
ログ・メソッドは、メッセージをサーバー・ログに送ります。
例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-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ロギングのデバッグ」も参照してください。
システム・プロパティを使用してデバッグを構成するには、次のステップを実行します。
この手順では、Oracle CEPサーバーstartwlevs.sh
ファイルを使用して、Simple Declarative Services (SDS)デバッグ(表14-6からのcom.bea.core.debug.DebugSDS
)をオンにします。
システム・プロパティを使用してOracle CEPデバッグ・オプションを構成するには:
表14-6でDebugSDS
フラグを検索します。
com.bea.core.debug.DebugSDS
フラグの前に-D
を付けてプロパティを作成します。
-Dcom.bea.core.debug.DebugSDS
プロパティをtrue
に設定してこのデバッグ・フラグを有効にします。
-Dcom.bea.core.debug.DebugSDS=true
このプロパティとstartwlevs.sh
を使用して、Oracle CEPサーバーを起動します。
./startwlevs.sh -Dcom.bea.core.debug.DebugSDS=true
構成ファイルからデバッグを構成するには、次の手順を実行します。
この手順では、Oracle CEPサーバーconfig.xml
ファイルのSimple Declarative Services (SDS)デバッグ(表14-6からのcom.bea.core.debug.DebugSDS
)をオンにします。
構成ファイルを使用してOracle CEPデバッグ・オプションを構成するには:
表14-6でDebugSDS
フラグを検索します。
com.bea.core.debug.DebugSDS
フラグ名からcom.bea.core.debug.
パッケージ名を省略してXMLタグを作成します。
<DebugSDS></DebugSDS>
例14-5に示すように、Oracle CEPサーバーconfig.xml
ファイルを編集して、debug
要素とともにdebug-properties
子要素を追加します。
例14-5に示すように、DebugSDS
要素をdebug-properties
要素に追加します。
例14-5に示すように、DebugSDS
要素をtrue
に設定してこのデバッグ・フラグを有効にします。
例14-6に示すように、logging-service
要素のlogger-severity
をDebug
に設定します。
例14-6に示すように、log-stdout
要素のstdout-severity
をDebug
に設定します。
例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>