Protokollierung von Meldungen in JavaScript¶
Sie können Meldungen von einem in JavaScript geschriebenen Funktions- oder Prozedur-Handler protokollieren, indem Sie das von der Snowflake-JavaScript-API bereitgestellte snowflake
-Objekt verwenden. Wenn Sie eine Ereignistabelle zum Speichern von Protokolleinträgen eingerichtet haben, speichert Snowflake die von Ihrem Handler-Code generierten Protokolleinträge in dieser Tabelle. Weitere Informationen zur JavaScript-API finden Sie unter API für gespeicherte Prozeduren in JavaScript.
Stellen Sie vor dem Starten der Protokollierung sicher, dass der Protokolliergrad so eingestellt ist, dass die gewünschten Meldungen in der Ereignistabelle gespeichert werden. Weitere Informationen dazu finden Sie unter Einstellung der Grade für Protokollierung, Metriken und Ablaufverfolgung.
Bemerkung
Bevor Sie mit der Protokollierung von Meldungen beginnen können, müssen Sie eine Ereignistabelle einrichten. Weitere Informationen dazu finden Sie unter Überblick über die Ereignisse.
Sie können auf die Protokollmeldungen zugreifen, indem Sie einen SELECT-Befehl auf der Ereignistabelle ausführen. Weitere Informationen dazu finden Sie unter Anzeigen von Protokollmeldungen.
Allgemeine Informationen zur Einstellung der Protokollierung und zum Abrufen von Meldungen in Snowflake finden Sie unter Protokollierung von Meldungen aus Funktionen und Prozeduren.
Der Code im folgenden Beispiel verwendet das enthaltene snowflake
-Objekt, um Meldungen auf jeder der unterstützten Ebenen zu protokollieren. Beachten Sie, dass eine Meldung, die von einer Methode protokolliert wird, die eine Eingabezeile verarbeitet, für jede Zeile protokolliert wird, die von der UDF verarbeitet wird. Wenn die UDF auf einer großen Tabelle ausgeführt wird, kann dies zu einer großen Anzahl von Meldungen in der Ereignistabelle führen.
snowflake.log("info", "Information-level message");
snowflake.log("error", "Error message");
snowflake.log("warn", "Warning message");
snowflake.log("debug", "Debug message");
snowflake.log("trace", "Trace message");
snowflake.log("fatal", "Fatal message");
Hinzufügen von benutzerdefinierten Attributen¶
Wenn Sie einen Protokolleintrag erstellen, können Sie Ihre eigenen Attribute in Schlüssel-Wert-Paaren hinzufügen. Snowflake speichert diese benutzerdefinierten Attribute in der Spalte RECORD_ATTRIBUTES der Ereignistabelle.
Um beim Aufruf der snowflake.log
-Methode benutzerdefinierte Attribute hinzuzufügen, stellen Sie die Schlüssel-Wert-Paare in JSON zusammen, die Sie als drittes Argument an die log
-Funktion übergeben.
Der Code im folgenden Beispiel protokolliert eine Meldung „Protokollierung mit Attributen“ in der VALUE-Spalte der Ereignistabelle. Es fügt außerdem zwei benutzerdefinierte Attribute zur RECORD_ATTRIBUTES-Spalte hinzu.
CREATE OR REPLACE PROCEDURE do_logging_javascript()
RETURNS VARCHAR
LANGUAGE JAVASCRIPT
AS $$
let log_attributes = {
"custom1": "value1",
"custom2": "value2"
}
snowflake.log("info", "Logging with attributes", log_attributes)
return "success";
$$;
Die Ausgabe dieses log
-Aufrufs wird in der Ereignistabelle wie folgt angezeigt. Beachten Sie, dass die RECORD_ATTRIBUTES-Spalte Attribute enthält, die Snowflake automatisch hinzufügt.
------------------------------------------------------------------
| VALUE | RECORD_ATTRIBUTES |
------------------------------------------------------------------
| "Logging with attributes" | { |
| | "custom1": "value1", |
| | "custom2": "value2" |
| | } |
------------------------------------------------------------------