プロトコル拡張のトラブルシューティング

拡張関数が期待どおりに動作しない場合は、拡張トレース機能を使用して拡張関数の動作を検証できます。カスタムロギング機能を使用して拡張機能にロギングを追加することもできます。この機能では、NetScalerアプライアンスでキャプチャするログレベルを定義できます。

カスタムロギング

拡張機能に独自のロギングを追加することもできます。そのためには、組み込みの ns.logger: level () 関数を使用します。レベルは、緊急、アラート、クリティカル、エラー、警告、通知、情報、またはデバッグです。パラメータは C の printf () 関数と同じです。フォーマット文字列と、フォーマット文字列で指定された% の値を提供する可変数の引数です。たとえば、次のコードを COMBINE_HEADERS 関数に追加して、呼び出しの結果をログに記録することができます。

local result_str = table.concat(combined_headers, "\r\n") .. "\r\n\r\n"

ns.logger:info("Result: %s", result_str)

return result_str
<!--NeedCopy-->

上記の関数は、上記の「拡張トレース」セクションの省略されたログメッセージの例に示されたサンプル入力について、次のメッセージを /var/log/ns.log に記録します。

... : default NSEXTENSION Message 143 0 : "Result: Host: 10.217.24.7:2000^M H1: abcd, 1234^M User-Agent: curl/7.24.0 (amd64-portbld-freebsd8.4) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.3^M Accept: \*/\*^M H2: h2val1, h2val2, h2val3^M ^M"

プロトコル拡張のトラブルシューティング