<service_name>!SPCS_GET_LOGS

Gibt die Protokolle zurück, die Snowflake aus Containern des angegebenen Dienstes gesammelt hat. Weitere Informationen dazu finden Sie unter Auf Containerprotokolle zugreifen.

Bemerkung

Die Funktion wird nur für Services und Jobs unterstützt, die in Release 9.20 oder höher erstellt wurden.

Siehe auch:

Überwachen von Diensten

Syntax

<service_name>!SPCS_GET_LOGS(
  [ START_TIME => <constant_expr> ],
  [ END_TIME => <constant_expr> ] )
Copy

Argumente

START_TIME => constant_expr

Startzeit (im TIMESTAMP_LTZ-Format) für den Zeitbereich, aus dem Protokolle abgerufen werden sollen. Verfügbare Funktionen zum Erstellen von Daten-, Zeit- und Zeitstempeldaten finden Sie unter Datums- und Uhrzeitfunktionen.

Wenn die START_TIME nicht angegeben ist, wird sie standardmäßig auf „Vor einem Tag“ eingestellt.

END_TIME => constant_expr

Endzeit (im TIMESTAMP_LTZ-Format) für den Zeitbereich, aus dem Protokolle abgerufen werden sollen.

Wenn END_TIME nicht angegeben ist, wird standardmäßig der aktuelle Zeitstempel verwendet.

Ausgabe

Jede Zeile der Ausgabe entspricht einem protokollierten Ereignis in der Ereignistabelle. Jede Zeile, die Ihr Dienst an stdout oder stderr ausgibt, führt zu einer Zeile in der Ausgabe.

Die Funktion gibt die folgenden Spalten zurück:

Spalte

Datentyp

Beschreibung

TIMESTAMP

TIMESTAMP_NTZ

Universal Coordinated Time (UTC)-Zeitstempel, zu dem Snowflake das Protokoll aus dem Container erfasst hat. Dieser Wert wird der TIMESTAMP-Spalte in der Ereignistabelle zugeordnet.

INSTANCE_ID

NUMBER

ID der Jobdienst-Instanz. Dieser Wert wird dem Feld in der Spalte RESOURCE_ATTRIBUTES der Ereignistabelle zugeordnet.

CONTAINER_NAME

VARCHAR

Name des Containers. Dieser Wert wird dem Feld snow.service.container.name in der Spalte RESOURCE_ATTRIBUTES der Ereignistabelle zugeordnet.

LOG

VARCHAR

Protokolleinträge von Snowflake, die von Ihrem Anwendungscontainer erfasst wurden. Dieser Wert wird der VALUE-Spalte in der Ereignistabelle zugeordnet.

RECORD_ATTRIBUTES

OBJECT

Zusätzliche Informationen über das Protokoll. Beispiel: Der Protokoll-Stream – stderr oder stdout –, von dem aus das Protokoll erfasst wurde. Dieser Wert wird der RECORD_ATTRIBUTES-Spalte in der Ereignistabelle zugeordnet.

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieser Operation verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

OWNERSHIP

Dienst

USAGE-Berechtigung für die übergeordnete Datenbank und das Schema ist erforderlich, um Operationen an einem beliebigen Objekt in einem Schema durchzuführen.

Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.

Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.

Nutzungshinweise

  • Es kann einige Minuten dauern, bis Ihre Containerprotokolle in der Ausgabe angezeigt werden.

Beispiele

Rufen Sie die Protokolle ab, die Snowflake im Laufe des letzten Tages aus Containern des my_test_job-Jobs gesammelt hat.

SELECT * FROM TABLE(my_test_job!SPCS_GET_LOGS());
Copy

Beispielausgabe:

+-------------------------+-------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+
| TIMESTAMP               | INSTANCE_ID | CONTAINER_NAME | LOG                                                                                                                                                                 | RECORD_ATTRIBUTES          |
|-------------------------+-------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------|
| 2025-06-26 00:23:40.281 |           0 | main           | job-tutorial - INFO - Job finished                                                                                                                                  | {                          |
|                         |             |                |                                                                                                                                                                     |   "log.iostream": "stdout" |
|                         |             |                |                                                                                                                                                                     | }                          |
| 2025-06-26 00:23:38.787 |           0 | main           | job-tutorial - INFO - Executing query [select current_time() as time,'hello'] and writing result to table [results]                                                 | {                          |
|                         |             |                |                                                                                                                                                                     |   "log.iostream": "stdout" |
|                         |             |                |                                                                                                                                                                     | }                          |
| 2025-06-26 00:23:38.787 |           0 | main           | job-tutorial - INFO - Connection succeeded. Current session context: database="TUTORIAL_DB", schema="DATA_SCHEMA", warehouse="TUTORIAL_WAREHOUSE", role="TEST_ROLE" | {                          |
|                         |             |                |                                                                                                                                                                     |   "log.iostream": "stdout" |
|                         |             |                |                                                                                                                                                                     | }                          |
| 2025-06-26 00:23:36.852 |           0 | main           | job-tutorial - INFO - Job started                                                                                                                                   | {                          |
|                         |             |                |                                                                                                                                                                     |   "log.iostream": "stdout" |
|                         |             |                |                                                                                                                                                                     | }                          |
+-------------------------+-------------+----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+

Rufen Sie die Protokolle ab, die Snowflake im Laufe des letzten drei Tage aus Containern des my_test_job-Jobs gesammelt hat.

SELECT * FROM TABLE(my_test_job!SPCS_GET_LOGS(START_TIME => DATEADD('day', -3, CURRENT_TIMESTAMP())));
Copy

Rufen Sie die Protokolle für die my_test_job-Jobinstanz 0 in dem Container namens main ab. Wie im folgenden Beispiel gezeigt, ruft die Funktion die Protokolle des letzten Tages ab, wenn Sie die START_TIME- und END_TIME-Argumente weglassen:

SELECT * FROM TABLE(my_test_job!SPCS_GET_LOGS())
WHERE instance_id = 0 AND container_name = 'main';
Copy