ログに出力される項目のカスタマイズ方法について説明します。
ISIが出力するログに、規定の出力項目以外のユーザデータ(たとえば、サービス利用側のアプリケーションで採番したメッセージ番号)を埋め込むことができます。指定できるユーザデータは、5つまでです。
ログに出力するユーザデータを指定するには、以下の方法があります。
サービス利用側アプリケーションの指定
サービス利用側のアプリケーションを利用して、共通メッセージのヘッダにユーザデータを指定します。
シーケンス情報の指定
ISI Studioを利用して、シーケンス情報の変数にユーザデータの取得情報を指定します。
ログ出力項目カスタマイズの主な特長は、以下のとおりです。
ユーザデータを埋め込んだログが出力されるのは、以下の条件を両方とも満たす場合だけです。それ以外の場合は、規定の出力形式でログが出力されます。
シーケンスエンジン実行時のログ
ESIMessageのIDが設定されている
シーケンス開始からシーケンスエンジンの初期化処理終了までは、サービス利用側のアプリケーションで指定したユーザデータが、ログに出力されます。
シーケンスエンジンの初期化処理が終了してからは、サービス利用側アプリケーションで指定したユーザデータ、およびシーケンス情報で指定したユーザデータが、ログに出力されます。
ユーザデータは、以下の並び順でログに出力されます。
サービス利用側のアプリケーションで指定したユーザデータは、共通メッセージのヘッダに設定した順番に出力されます。
シーケンス情報で指定したユーザデータは、シーケンス情報の変数に設定した順番に出力されます。
図3.1 ログ出力項目カスタマイズの機能
サービス利用側のアプリケーションとシーケンス情報で指定したユーザデータの合計が6つ以上になった場合、警告が出力され、サービス利用側アプリケーションで指定したユーザデータが優先されて出力されます。
値がnullのユーザデータを指定した場合、ログには文字列「null」が出力されます。
ユーザデータの長さは、128バイト以内で指定してください。128バイトを超えた場合、ログが正しく出力されない可能性があります。
ユーザデータの取得中に例外が発生し、取得が失敗した場合、警告が出力され、ログには文字列「null」が出力されます。
grep機能を利用すると、ログに出力されたユーザデータをキーワードに、エラー情報のトレースが容易にできます。シーケンスログのステップログ採取を利用すると、各ステップの実行成功/失敗が出力されるので、ISIの正常動作を判断しやすくなります。
出力形式
最大5つまでのユーザデータが、以下の形式で出力されます。ユーザデータが出力される位置は、ESI-MessageIDの次です。
USERDATA[ユーザデータ1,ユーザデータ2,…]USERDATA |
出力例(シーケンスログ)
2009-09-16T20:25:02.703 1208777102703 xxx null ### SEQUENCE-START ### ESI-xxx-20090916000121148-12785 USERDATA[aaa,bbb]USERDATA ### ### ### 1773 ### ### |