Anzeigen von Protokollmeldungen

Sie können die Meldungen des Protokolls entweder über Snowsight oder durch Abfrage der Ereignistabelle, in der die Protokolleinträge gespeichert sind, einsehen.

Bemerkung

Bevor Sie mit der Verwendung von Protokollmeldungen beginnen können, müssen Sie die Telemetriedatenerfassung aktivieren.

Protokolleinträge in Snowsight anzeigen

Bemerkung

Snowsight die Unterstützung für die Protokollierung und Ablaufverfolgung ist ein Feature, das in der Vorschau für alle Konten verfügbar ist.

Sie können Snowsight verwenden, um die in der Ereignistabelle erfassten Protokolldaten anzuzeigen.

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie im Navigationsmenü die Option Monitoring » Traces and Logs aus.

  3. Auf der Seite Traces & Logs können Sie die folgenden Aktionen durchführen:

    • Um die angezeigten Zeilen zu filtern, verwenden Sie die Dropdown-Menüs oben auf der Seite. Sie können nach den folgenden Merkmalen filtern:

      • Datumsbereich, in dem der Eintrag erfasst wurde

      • Name des Snowflake-Benutzers, der den Code ausführt, der den Eintrag erzeugt hat

      • Schweregrad des Protokolleintrags

      • Programmiersprache des Codes, der den Protokolleintrag erzeugt hat

    • Um Einträge nach einem bestimmten Zeitraum in den angezeigten Daten zu filtern, wählen Sie den Diagrammbalken, der den Zeitraum darstellt.

    • Um Zeilen zu sortieren, wählen Sie den Namen der Spalte, nach der Sie sortieren möchten.

    • Um detailliertere Informationen über einen Eintrag im Details anzuzeigen, wählen Sie die Zeile des Eintrags aus.

      In diesem Bereich können Sie weitere Informationen einsehen, die in der Ereignistabelle gespeichert sind. Die folgende Tabelle beschreibt die Werte im Panel:

      Detail

      Beschreibung

      Datensatztyp

      Art des Ereignisses, für das die ausgewählte Zeile steht. Abgerufen vom Spalte RECORD_TYPE-Wert.

      Datenbank

      Name der Datenbank, die den Code enthält, der den Eintrag erzeugt hat. Abgerufen vom Spalte RESOURCE_ATTRIBUTES snow.database.name-Wert.

      Schema

      Name des Schemas, das den Code enthält, der den Eintrag erzeugt hat. Abgerufen vom Spalte RESOURCE_ATTRIBUTES snow.schema.name-Wert.

      Schweregrad

      Schweregrad des Protokolleintrags. Abgerufen vom Spalte RECORD severity_text-Wert.

      Abfrage-ID

      ID der Abfrage, innerhalb derer der Protokolleintrag erstellt wurde. Abgerufen vom Spalte RESOURCE_ATTRIBUTES snow.query.id-Wert.

      Objekt

      Name der Quelle des emittierten Protokolleintrags, z. B. die Funktion oder Prozedur. Abgerufen vom Spalte RESOURCE_ATTRIBUTES snow.executable.name-Wert.

      Warehouse

      Name des Warehouse, das die Abfrage ausführt, die das Ereignis erzeugt hat. Abgerufen vom Spalte RESOURCE_ATTRIBUTES snow.warehouse.name-Wert.

      Eigentümer

      Name der Hauptrolle in der Sitzung. Abgerufen vom Spalte RESOURCE_ATTRIBUTES snow.session.role.primary.name-Wert.

      Protokolltext

      Text der Protokollmeldung. Abgerufen vom Spalte VALUE-Wert.

Abfrage der Ereignistabelle nach Protokolleinträgen

Um auf die protokollierten Meldungen zuzugreifen, führen Sie den Befehl SELECT in der Ereignistabelle aus.

Eine Ereignistabelle hat einen Satz von vordefinierten Spalten, die Informationen über die protokollierten Meldungen erfassen, einschließlich die Folgenden:

  • Der Zeitstempel für den Zeitpunkt, an dem die Meldung erfasst wurde

  • Der Geltungsbereich des Protokollereignisses, z. B. der Name der Klasse, in der das Protokollereignis erstellt wurde.

  • Die Quelle der Ereignisse im Protokoll, einschließlich Datenbank, Schema, Benutzer, Warehouse

  • Der Schweregrad des Protokolleintrags

  • Die Protokollmeldung

Referenzinformationen über die Struktur der Ereignistabelle finden Sie unter Spalten von Ereignistabellen.

In den folgenden Abschnitten wird anhand von Beispieldaten gezeigt, wie Sie die Ereignistabelle nach Protokollmeldungsdaten abfragen können.

Gesammelte Daten

Die Ausgabe im folgenden Beispiel zeigt den Inhalt einer ausgewählten Teilmenge von Spalten einer Ereignistabelle, nachdem Protokollmeldungen für zwei separate Handler erfasst wurden, von denen einer in Scala und der andere in Python geschrieben wurde.

Referenzinformationen zu Ereignistabellenspalten, die Protokollmeldungsdaten sammeln, finden Sie unterr Daten zu Protokollereignissen.

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| TIMESTAMP           | SCOPE                             | RESOURCE_ATTRIBUTES   | RECORD_TYPE | RECORD                       | VALUE                                                      |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-19 22:00:49 | { "name": "python_logger" }       | **See excerpt below** | LOG         | { "severity_text": "INFO" }  | Logging from Python module.                                |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-19 22:00:49 | { "name": "python_logger" }       | **See excerpt below** | LOG         | { "severity_text": "INFO" }  | Logging from Python function start.                        |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-19 22:00:49 | { "name": "python_logger" }       | **See excerpt below** | LOG         | { "severity_text": "ERROR" } | Logging an error from Python handler.                      |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-19 22:12:55 | { "name": "ScalaLoggingHandler" } | **See excerpt below** | LOG         | { "severity_text": "INFO" }  | Logging from within the Scala constructor.                 |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-19 22:12:56 | { "name": "ScalaLoggingHandler" } | **See excerpt below** | LOG         | { "severity_text": "INFO" }  | Logging from Scala method start.                           |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-19 22:12:56 | { "name": "ScalaLoggingHandler" } | **See excerpt below** | LOG         | { "severity_text": "ERROR" } | Logging an error from Scala handler: Something went wrong. |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RESOURCE_ATTRIBUTES-Auszüge

Die folgende JSON enthält Auszüge von Werten, die Sie in der RESOURCE_ATTRIBUTES-Spalte der vorangegangenen Ausgabe finden. Jedes snow.executable.name-Name-Wert-Paar stammt aus einer anderen Zeile der vorangegangenen Ausgabe.

Der Code der SELECT-Abfrage, die diesem Auszug folgt, wählt aus dem RESOURCE_ATTRIBUTES-Wert der Spalte aus.

Die Spalte RESOURCE_ATTRIBUTES enthält Daten zur Quelle des Ereignisses. Weitere Informationen dazu finden Sie unter Spalte RESOURCE_ATTRIBUTES.

{
  ...
  "snow.executable.name": "ADD_TWO_NUMBERS(A FLOAT, B FLOAT):FLOAT"
  ...
}

{
  ...
  "snow.executable.name": "ADD_TWO_NUMBERS(A FLOAT, B FLOAT):FLOAT"
  ...
}

{
  ...
  "snow.executable.name": "ADD_TWO_NUMBERS(A FLOAT, B FLOAT):FLOAT"
  ...
}

{
  ...
  "snow.executable.name": "DO_LOGGING():VARCHAR(16777216)"
  ...
}

{
  ...
  "snow.executable.name": "DO_LOGGING():VARCHAR(16777216)"
  ...
}

{
  ...
  "snow.executable.name": "DO_LOGGING():VARCHAR(16777216)"
  ...
}
Copy

Abfragen mit SELECT-Anweisung

Bei der Abfrage von Meldungsdaten wählen Sie Attributwerte innerhalb einer Spalte aus, indem Sie die Klammernotation, im folgenden Format verwenden:

COLUMN_NAME['attribute_name']
Copy

Der Code im folgenden Beispiel fragt die vorherige Tabelle ab, um Daten zu isolieren, die sich auf die Protokollmeldungen des Python-Handlers beziehen. Die Abfrage wählt das Attribut severity_text aus, das den Schweregrad des Protokolleintrags enthält. Sie wählt den Inhalt der Spalte VALUE der Protokollmeldung aus.

Die Prozedur, die den Handler enthält, heißt do_logging. Beachten Sie, dass Sie den Namen der Prozedur in Großbuchstaben angeben müssen, damit die Abfrage funktioniert.

SET event_table_name='my_db.public.my_event_table';

SELECT
  TIMESTAMP as time,
  RESOURCE_ATTRIBUTES['snow.executable.name'] as executable,
  RECORD['severity_text'] as severity,
  VALUE as message
FROM
  IDENTIFIER($event_table_name)
WHERE
  SCOPE['name'] = 'python_logger'
  AND RESOURCE_ATTRIBUTES['snow.executable.name'] LIKE '%DO_LOGGING%'
  AND RECORD_TYPE = 'LOG';
Copy

Abfrageergebnisse

Die Ausgabe im folgenden Beispiel veranschaulicht das Ergebnis der Abfrage:

----------------------------------------------------------------------------------------------------------------
| TIME                | EXECUTABLE                       | SEVERITY   | MESSAGE                                |
----------------------------------------------------------------------------------------------------------------
| 2023-04-19 22:00:49 | "DO_LOGGING():VARCHAR(16777216)" | "INFO"     | "Logging from Python module."          |
----------------------------------------------------------------------------------------------------------------
| 2023-04-19 22:00:49 | "DO_LOGGING():VARCHAR(16777216)" | "INFO"     | "Logging from Python function start."  |
----------------------------------------------------------------------------------------------------------------
| 2023-04-19 22:00:49 | "DO_LOGGING():VARCHAR(16777216)" | "ERROR"    | "Logging an error from Python handler" |
----------------------------------------------------------------------------------------------------------------