ヘッダーをスキップ
Oracle® Fusion Middleware WebCenter Sites開発者ガイド
11gリリース1 (11.1.1.8.0)
E49681-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

10 エラー・ロギングおよびデバッグ

WebCenter Sitesには、エラー・メッセージのロギングとソース・コードのデバッグについていくつかのオプションが用意されています。この章では、WebCenter Sitesの開発環境全体で適用される一般的なエラー・ロギングとデバッグの方法について説明します。

WebCenter Sitesではアクティビティをログ・ファイルに記録できますが、ログ・ファイルは新規インストールではsites.logという名前でlogsフォルダに配置されます。ログ・ファイルに書き込まれる情報のタイプとボリュームは、有効化または定義に選択したログ出力により管理されます。ログ出力の詳細は、第10.1項「WebCenter Sitesログ・ファイルへのロギング」を参照してください。

WebCenter Sitesには、JSPタグとXMLタグがタスクを完了できなかった場合にエラー・コードを返すために使用する予約済変数があります。詳細は、第10.2項「タグによるエラー・コードの使用方法」を参照してください。

この章には次の項が含まれます。

10.1 WebCenter Sitesログ・ファイルへのロギング

ロギングは、commons-loggingフレームワーク(commons-logging.propertiesファイルを使用)またはApache log4jフレームワークのいずれかに基づいています。

新規のWebCenter Sitesインストールでは、log4jがWebCenter Sitesロギング・システムになります。log4jが設定されると、情報のロギング方法とロギングの対象となる情報を指定するlog4j.propertiesファイルが作成されます。また、WebCenter Sites Adminインタフェースは、「管理」タブ上の「システム・ツール」ノードに「log4jの構成」ツールを用意しています。「log4jの構成」の使用によって、現在のログ出力をAdminインタフェースから直接表示できます。また、新規ログ出力の追加とログ出力レベルの変更も動的に行えます。ログ出力のテキスト・バージョンをこのインタフェースからlog4j.propertiesファイルにコピーしておくと、システムの再起動時でも変更は削除されません。「log4jの構成」ツールの詳細は、『Oracle Fusion Middleware WebCenter Sites管理者ガイド』を参照してください。

log4j.propertiesファイルおよびcommons-logging.propertiesファイルの詳細は、『Oracle Fusion Middleware WebCenter Sitesプロパティ・ファイル・リファレンス』を参照してください。

独自のログ出力を定義したり、独自のメッセージをWebCenter Sitesのログ・ファイルに書き込むには、ics:logmsgタグを使用します。次の例では、WebCenter Sitesのログ・ファイルに警告メッセージが書き込まれます。

<ics:logmsg msg="This is a warning message"
  name="com.fatwire.logging.cs.jsp" severity="warn"/>

ics:logmsgの詳細は、Oracle Fusion Middleware WebCenter Sitesタグ・リファレンスを参照してください。


注意:

ロギングが実装されているシステムのタイプに一致するレベルでログ出力を設定することをお薦めします。開発システムおよびコンテンツ管理システムでは、大量の情報を提供する高重大度(INFOまたはDEBUGなど)にログ出力レベルを設定できます。配信システムでは、ログ出力を無効にするか低重大度(WARNまたはERROR)に設定することで、パフォーマンスの低下を回避し、公開された環境でシステム情報を利用できます。


10.2 タグによるエラー・コードの使用方法

WebCenter Sitesには、ほとんどのJSPタグとXMLタグがタスクを完了できなかった場合にエラー・コード(通常はerrnoという)を返すために使用するVariables.errnoという名前の予約済変数があります。

たとえば、<CALLELEMENT> XMLタグはVariables.errnoを次のように設定します。

成功した場合、<CALLELEMENT>Variables.errnoの値を変更しません。


注意:

リビジョン追跡操作の場合は、Variable.errdetailsという予約済変数によってエラーに関する追加情報が提供されます。


通常は、次の戦略をVariables.errnoを使用するタグと併用します。

  1. タグを呼び出す前に、Variables.errno0に初期化します。

  2. タグを呼び出します。

  3. Variables.errnoを評価します。

エラー・コードを使用するタグの例

たとえば、次のコードは3つの手順をすべて実行します。

<SETVAR NAME="errno" VALUE="0"/>
<SETCOUNTER NAME="pi" VALUE="3.14159"/> 
  <IF COND="Variables.errno=-501">
    <THEN>
      <p>Bad value of pi</p>
    </THEN>
  </IF>

このコードを実行すると次のHTMLが生成されますが、これはSETCOUNTERでは浮動小数点値を処理できないためです。

<p>Bad value of pi</p>

ASSETRENDERおよびSITEPLANの各タグは、実行前にerrnoをクリアします。これらのタグを使用する場合、errnoを0に設定する必要はありません。たとえば、ASSETタグの使用後にerrnoの値をチェックして、値が変更されたかどうかを判別するのみで十分です。

<ASSET.LOAD NAME="topArticle" TYPE="Article" 
OBJECTID="Variables.cid"/>
  <IF COND="IsError.Variables.errno=false">
    <THEN>
      <ASSET.CHILDREN NAME="topArticle" LIST="listOfChildren"/>
    </THEN>
  </IF>

テンプレート・エレメントの終わりに、次のようなエラー・チェッキング・コードを含めることができます。

<IF rendermode="preview">
  <THEN>
    <IF COND="IsError.Variable.errno=true">
      <THEN>
        <FONT COLOR="#FF0000">
         Error <CSVAR NAME="Variables.errno"/>
         while rendering <CSVAR NAME="pagename"/> 
         with asset ID <CSVAR NAME ="Variables.cid"/>.
        </FONT>
      </THEN>
    </IF>
  </THEN>
</IF>

Javaインタフェース

WebCenter Sitesのコール後に文字列変数errnoを取得して、成功または失敗のテストを行うことができます。次に例を示します。

cs.clearErrno();

IList rslt = cs.SelectTo(SYSTEMUSERS_TABLE, ALL_FIELDS, USERNAME, 
             null, NO_LIMIT, null, CACHE_RESULTS, errstr);

errno = cs.GetVar("errno");

if (errno.compareTo(ERRNO_SUCCESS) == 0)
    {
     ...

エラー番号ルール

エラー番号には必ず整数を使用します。次の表に、Variables.errnoのエラー番号ルールの概要を示します。

それぞれのタグ固有のエラー番号については、Oracle Fusion Middleware WebCenter Sitesタグ・リファレンスを参照してください。

表10-1 エラー番号ルール

番号 意味

負の整数

失敗

0(ゼロ)

成功

リビジョン追跡タグ以外のタグの正の整数

情報

リビジョン追跡タグの正の整数

失敗