CSP ログの有効化
このページでは、CSP アクティビティを記録するログを有効化する方法を説明します。このログは、CSP ベースの Web アプリケーションをトラブルシューティングする際に役立ちます。
ログの有効化と無効化
ログを有効化するには、ObjectScript シェルで以下のコマンドを入力します。
Set ^%ISCLOG = 2
"ログ・レベルとタグによるフィルタ処理" も参照してください。
ログをオフにするには、以下のようにします。
Set ^%ISCLOG = 0
ログ・レベルとタグによるフィルタ処理
参考のために、ログ・レベルを以下に示します。
-
0 — InterSystems IRIS® データ・プラットフォームはログ記録を実行しません。
-
1 — InterSystems IRIS は例外的なイベントのみをログ記録します (エラー・メッセージなど)。
-
2 — InterSystems IRIS は詳細な情報もログ記録します (method ABC invoked with parameters X,Y,Z and returned 1234 など)。
-
3 — InterSystems IRIS は HTTP 要求から受け取ったデータなど、未処理の情報もログ記録します。
%response、%session、%request 変数の設定を確認し、Web ゲートウェイとのデータ転送を確認するには、ログ・レベル 3 が必要であることに注意してください。
-
5 — InterSystems IRIS は OAuth 2.0 情報もログ記録します。
また、InterSystems IRIS は、より詳細なアプローチが必要な場合でもログ・サイズが大きくなりすぎないように、どの ^%ISCLOG エントリを生成するかを制御する柔軟なメカニズムを備えています。このメカニズムは、以下のように動作します。
-
ログのエントリには Tag フィールドが含まれます。"ログのフィールド" を参照してください。
-
ログ・レベルを設定する際は、ログ記録するタグを指定することもできます。以下の例を参照してください。
Set ^%ISCLOG("Tag","mytagvalue1")=1 Set ^%ISCLOG("Tag","mytagvalue2")=1
この例では、タグが付いていないか、mytagvalue1 または mytagvalue2 のタグが付いたログ・エントリのみが記録されます。
このメカニズムは、ログ・レベルと連動します。
ログの表示
CSP ログが有効な場合、InterSystems IRIS は %SYS ネームスペースの ^ISCLOG グローバルに書き込みます。これは、SQL から %Library.SysLogTableOpens in a new tab テーブルとして利用できます。(ZWRITE を使用してグローバルを表示することもできますが、テーブルへのクエリを実行した方が詳細が読み取りやすくなります。)管理ポータルでログを表示するには、以下の手順を実行します。
-
[システムエクスプローラ]→[SQL] をクリックします。
-
[クエリ実行] タブで、以下のようにクエリを入力します。
SELECT ID, Category, LogLevel, Namespace, Pid, Routine, SessionId, Tag, TimeAdded, Message FROM %Library.SysLogTable
-
[実行] をクリックします。
ログのフィールド
%Library.SysLogTableOpens in a new tab テーブルのフィールドは以下のとおりです。
このテーブル内のフィールドの一意のレコード ID を示します。
このフィールドは、ログが処理のどの部分に由来するかによってレコードを大まかに分類するためのものです。カテゴリには以下のようなものがあります。
-
CSPBroker
-
CSPLicense — ライセンスを処理する cspServer および cspServer2 の一部から項目がログ記録されました。
-
CSPResponse
-
CSPServer — cspServer、cspServer2、%request、%response のいずれかから項目がログ記録されました。
-
CSPSession — セッションを処理する %session または cspServer と cspServer2 の一部から項目がログ記録されました。これにより、セッションのライフサイクルの監視が可能になります。
-
CSPStream
-
GatewayRegistry
-
GatewayRequest — Web ゲートウェイ要求を処理する GatewayMgr、GatewayRegistry、Web ゲートウェイ要求ハンドラ、または cspServer2 の一部から項目がログ記録されました。
-
OutputRedirection
-
SuperServer
このログ・エントリに対応するログ・レベルを示します。
実際のメッセージを示します。"メッセージ形式" を参照してください。
このログ・エントリの追加元のネームスペースを示します。
このログ・エントリを追加したプロセスの ID を示します。(これはイベント・ログの Cache-PID と同じです。)
このログ・エントリを追加したルーチンを示します。
このログ・エントリの追加元の CSP セッションの ID を示します。(これはイベント・ログの Session-ID と同じです。)
このフィールドは、ログのフィルタ処理のサポート用です。CSP サーバの場合、Tag には Web ゲートウェイからの要求 ID が含まれます (利用可能な場合)。(これはイベント・ログの Request-ID と同じです。)その他のロガーでは、この値は任意の値に設定されます。つまり、このオプションは、^%ISCLOG エントリの作成者が使用できます。
このログ・エントリを追加した日時を示します。
Message フィールドの詳細
CSP ログでは、Message フィールドのエントリは、現在実行中のタグ・ラベルまたはメソッドの名前で開始されます。この名前は角括弧で囲まれます。例えば、[MyMethod] rest of messages のようになります。
CSPSession カテゴリ内のメッセージには、メソッド名の後に CSPSession-Id=sessid も含まれます。これが必要なのは、セッション・イベントはセッションが作成される前か、セッションが破棄された後 (つまり、ログ内の SessionId フィールドは空) に記録できるためです。
[MyMethod] CSPSession-Id: 12ty34ui22
GatewayRegistry カテゴリ内のメッセージには、メソッド名の後に CSPID=cspid も含まれます (利用可能な場合)。これにより、ゲートウェイ要求ハンドラを介して API 呼び出しからの個々のゲートウェイ要求を追跡することが可能になります。
[MyMethod]CSPID:334r43345 rest of message
ログのクリア
ログ全体をクリアするには、%SYS ネームスペースで以下のコマンドを入力します。
kill ^ISCLOG