67 エラーのロギングおよびデバッグ

WebCenter Sitesではアクティビティをログ・ファイルに記録し、ログ・ファイルは新規インストールではsites.log,という名前でlogsフォルダに配置されます。ログ・ファイルに書き込まれる情報のタイプとボリュームは、有効化または定義に選択したログ出力により管理されます。WebCenter Sitesには、JSPタグとXMLタグがタスクを完了できなかった場合にエラー・コードを返すために使用する予約済変数もあります。

トピック:

WebCenter Sitesログ・ファイルへのカスタム・メッセージの書込みについて

ログODLツールを使用して、ログ出力を表示し、新しいログ出力を追加します。独自のログ・メッセージをWebCenter Sitesのログ・ファイルに書き込む場合、ics:logmsgタグを使用します。

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

独自のログ出力を定義したり、独自のメッセージを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 WebCenter Sitesリファレンス・タグ・リファレンス』を参照してください。

ノート:

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

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

JSPおよびXMLタグがタスクを正常に完了しない場合は、WebCenter SitesVariables.errnoという予約済変数を使用できます。ほとんどのJSPおよびXMLタグは、エラー・コード(通常"errno"と呼ばれる)を返すためにこの変数を使用します。

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

  • -10: 存在しないエレメントを指定した場合。

  • -12: WebCenter Sitesが評価できない既存エレメントを指定した場合。

成功した場合、<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をクリアします。これらのタグを使用する場合、errno0に設定する必要はありません。たとえば、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 WebCenter Sitesリファレンス・タグ・リファレンス』を参照してください。

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

番号 重要度

負の整数

失敗

0 (ゼロ)

成功

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

情報

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

失敗