workshopLogCfg.xml コンフィグレーション ファイル

workshopLogCfg.xml ファイルは、WebLogic Server に対する WebLogic Workshop のロギング コンフィグレーションおよびロギング レベルを指定します。Web サービスのロギング機能を使用できます。発生した問題を診断するために、BEA テクニカル サポートの担当者から WebLogic Workshop のロギング動作を変更するように指示されることもあります。このトピックでは、WebLogic Workshop のロギング機構の基本的な機能を説明します。

Log4j ライブラリ

WebLogic Workshop では、Apache Foundation の Jakarta プロジェクトが開発した log4j Java ロギング機能を使用します。log4j の詳細については、Log4j プロジェクトのサイトを参照してください。以下で、log4j の概要を紹介します。

ロガー

Log4j は、Logger クラスを定義します。1 つのアプリケーションで、各々がユニークな名前を持つ複数のロガーを作成できます。log4j の標準的な使い方では、アプリケーションで、ログ メッセージを出力する各アプリケーション クラスの Logger インスタンスが作成されます。ロガーの名前は通常、アプリケーション クラスの部分修飾名と同じです。たとえば、アプリケーション クラス com.mycompany.MyClass では「mycompany.MyClass」という名前のロガーが作成されると考えられます。ロガーはネームスペースの階層内に存在し、その階層における上位クラスから動作を継承します。

Logger クラスには、debuginfowarn および error という、ログ メッセージの出力のための 4 つのメソッドが定義されています。アプリケーション クラスは、レポートされる状況に適したメソッドを(ローカル ロガー上で)呼び出します。

アペンダ

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

レイアウト

Log4j は、ログ メッセージのフォーマットを制御するレイアウトを定義します。各レイアウトは、現在の時刻と日付、ログ レベル、ロガー名、ログ メッセージなどのデータに置換できる特定のメッセージ フォーマットを指定します。特定のレイアウトは、各アペンダと関連付けられています。これにより、たとえばファイル出力とは違うログ メッセージ フォーマットをコンソール出力に対して指定できます。

コンフィグレーション

実行時の log4j コンフィグレーションのすべてのコンポーネントを定義します。これは通常、log4j ライブラリでフォーマットを定義された XML コンフィグレーション ファイルで実現します。コンフィグレーション ファイルは、実行時に log4j.configuration Java プロパティを使用して指定できます。

コンフィグレーション ファイルは、ロガー、アペンダ、およびレイアウトを宣言し、それらの組み合わせをコンフィグレーションして、アプリケーションにとって望ましいロギング スタイルを提供します。

WebLogic Workshop のロギング

コンフィグレーション ファイル

デフォルトでは、WebLogic Workshop のロギング コンフィグレーションは BEA_HOME/weblogic700/common/lib にある workshopLogCfg.xml というファイルで定義されます。このデフォルトをオーバーライドするには、log4j.configuration Java プロパティを備えた代替の log4j コンフィグレーション ファイルの場所を指定します。たとえば、WebLogic Server の起動に使用するコマンド ライン上で -Dlog4j.configuration=<path to config file> を指定するとよいでしょう。

デフォルトでは、WebLogic Workshop は workshop.log および jws.log.という 2 つのログ ファイルを使用します。

workshop.log ログ ファイル

ファイル workshop.log は、WebLogic Workshop 実行時に出力される内部ロギング メッセージをすべて受信するようにコンフィグレーションされています。

jws.log ログ ファイル

ファイル jws.log は、Web サービスに関連付けられたユーザ コードによって出力されるロギング メッセージをすべて受信するようにコンフィグレーションされています。これには JWS ファイル内のコードが含まれますが、Web サービスによって使用される JSX および JAVA ファイル内のコードも含まれます。

Web サービスから jws.log ファイルにメッセージが送信されるようにするには、Web サービスのためのロガーを作成します。JwsContext.getLogger メソッドを、通常は Web サービスのクラスの修飾名(たとえばサンプル Web サービス async/HelloWorldAsync.jws については「async.HelloWorldAsync」)をロガー名として呼び出すことで、ロガーを作成できます。その後は、ロガーの debuginfowarn、または error メソッドを適宜呼び出すだけです。

以下のサンプル コードは、JWS ファイル内でのロギングの使用を示しています。ソース ファイルは、簡略化のために部分的に省略されています。

package async; 
import weblogic.jws.control.JwsContext; 
import weblogic.jws.control.TimerControl; 
import weblogic.jws.util.Logger;


public class HelloWorldAsync {    /** @jws:context */    JwsContext context;    /**     * @jws:operation     * @jws:conversation phase="start"     */    public void HelloAsync()    {         Logger logger = context.getLogger("async.HelloWorldAsync");         logger.debug("about to start timer");        // all we do here is start the timer.          helloDelay.start();         logger.debug("timer started");        return;    }    private void helloDelay_onTimeout(long time)    {         Logger logger = context.getLogger("async.HelloWorldAsync");        // send the client a hello message.         logger.debug("in timer handler: calling client");        callback.onHelloResult("Hello, asynchronous world");                // we don't want any more timer events for this conversation.         logger.debug("in timer handler: stopping timer");        helloDelay.stop();                return;    } }

上記のコードにより、HelloWorldAsync.jwsHelloAsync メソッド呼び出し時に、jws.log に次のコンテンツが生成されます。

20 May 2002 13:54:13,466 DEBUG HelloWorldAsync: about to start timer
20 May 2002 13:54:13,559 DEBUG HelloWorldAsync: timer started
20 May 2002 13:54:18,934 DEBUG HelloWorldAsync: in timer handler: calling client
20 May 2002 13:54:18,981 DEBUG HelloWorldAsync: in timer handler: stopping timer

関連トピック

コンフィグレーション ファイル リファレンス