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 SitesのVariables.errno
という予約済変数を使用できます。ほとんどのJSPおよびXMLタグは、エラー・コード(通常"errno"と呼ばれる)を返すためにこの変数を使用します。
たとえば、<CALLELEMENT>
XMLタグはVariables.errno
を次のように設定します。
-
-10
: 存在しないエレメントを指定した場合。 -
-12
: WebCenter Sitesが評価できない既存エレメントを指定した場合。
成功した場合、<CALLELEMENT>
はVariables.errno
の値を変更しません。
ノート:
リビジョン追跡操作の場合は、Variable.errdetails
という予約済変数によってエラーに関する追加情報が提供されます。
次の戦略をVariables.errno
を使用するタグと併用します。
- タグを呼び出す前に、
Variables.errno
を0
に初期化します。 - タグを呼び出します。
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>
ASSET
、RENDER
および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 WebCenter Sitesリファレンス・タグ・リファレンス』を参照してください。
表67-1 エラー番号ルール
番号 | 重要度 |
---|---|
負の整数 |
失敗 |
0 (ゼロ) |
成功 |
リビジョン追跡タグ以外のタグの正の整数 |
情報 |
リビジョン追跡タグの正の整数 |
失敗 |