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

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

カスタムロギング

拡張関数に独自のロギングを追加することもできます。これを行うには、組み込みの ns.logger: level () 関数を使用します。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

上記の関数は、上記の「拡張トレース」セクションの省略されたログメッセージの例に示されたサンプル入力について、次のメッセージを /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"

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