Problembehandlung bei Protokollerweiterungen

Wenn sich Ihre Erweiterungsfunktion nicht wie erwartet verhält, können Sie die Funktion zur Nachverfolgung von Erweiterungen verwenden, um das Verhalten Ihrer Erweiterungsfunktion zu überprüfen. Sie können Ihrer Erweiterungsfunktion auch die Protokollierung hinzufügen, indem Sie die benutzerdefinierte Protokollierungsfunktion verwenden, mit der Sie die Protokollebene definieren können, die auf der NetScaler-Appliance erfasst werden soll.

Benutzerdefiniertes Logging

Sie können Ihrer Erweiterungsfunktion auch Ihre eigene Protokollierung hinzufügen. Verwenden Sie dazu die eingebaute Funktion ns.logger:level (), wobei Level für Notfall, Warnung, Kritisch, Fehler, Warnung, Hinweis, Info oder Debug steht. Die Parameter sind dieselben wie bei der C-Funktion printf (): eine Formatzeichenfolge und eine variable Anzahl von Argumenten, um Werte für das in der Formatzeichenfolge angegebene% bereitzustellen. Sie könnten beispielsweise der COMBINE_HEADERS-Funktion Folgendes hinzufügen, um das Ergebnis eines Aufrufs zu protokollieren:

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

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

return result_str
<!--NeedCopy-->

Die obige Funktion würde die folgende Meldung nach/var/log/ns.log für die Beispieleingabe protokollieren, die in den abgekürzten Protokollnachrichtenbeispielen im Abschnitt Extension Tracing oben gezeigt wird.

... : 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"

Problembehandlung bei Protokollerweiterungen