プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebCenter Sitesでの開発
12c (12.2.1)
E72540-01
目次へ移動
目次

前
次

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

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

エラーのロギングおよびデバッグの詳細は、次の項を参照してください。

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

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

注意:

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

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

WebCenter Sitesには、ほとんどのJSPタグとXMLタグがタスクを完了できなかった場合にエラー・コード(通常はerrnoという)を返すために使用するVariables.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)
    {
     ...

エラー番号ルール

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

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

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

番号 重要度

負の整数

失敗

0 (ゼロ)

成功

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

情報

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

失敗