Konfigurieren von Protokolliergraden und Dateien

Der Node.js-Treiber unterstützt zwei Typen von Loggern zur Verfolgung von Aktivitäten:

  • Browser-Logger, der Protokolle in einem Speicherpuffer innerhalb des Browsers speichert.

  • Node-Logger, der standardmäßig Protokolle in einer snowflake.log-Datei speichert und sie in der Konsole anzeigt.

Sie können den folgenden Code verwenden, um vom Browser-Logger zum Node-Logger zu wechseln. In diesem Beispiel erfolgt ein Wechsel zum Node-Logger und das Senden einer Nachrichten an die Konsole.

Logger.setInstance(new NodeLogger({ logFilePath: 'STDOUT'}));
Copy

Unterstützte Protokolliergrade

Der Node.js-Treiber unterstützt die folgenden Protokolliergrade:

  • OFF

  • ERROR

  • WARNING

  • INFO

  • DEBUG

  • TRACE

Standard-Protokollierungsverhalten konfigurieren

Sie können die Standardprotokollierung konfigurieren, indem Sie snowflake.configure aufrufen, ähnlich wie im Folgenden beschrieben:

const snowflake = require('snowflake-sdk');

snowflake.configure: {
  logLevel: "INFO",
  logFilePath: "/some/path/log_file.log"
  additionalLogToConsole: false
}
Copy

Wobei:

  • logLevel ist der gewünschte Protokolliergrad.

  • logFilePath ist der Speicherort der Protokolldatei oder STDOUT für die Konsolenausgabe.

  • additionalLogToConsole ist ein boolescher Wert, der angibt, ob Protokollmeldungen auch an die Konsole gesendet werden sollen, wenn eine logFilePath angegeben wird. Standard: true.

Einfache Protokollierung für Debuggen von Code verwenden

Beim Debuggen einer Anwendung kann eine Erhöhung des Protokolliergrads detailliertere Informationen darüber liefern, was die Anwendung tut. Das Easy Logging-Feature vereinfacht die Fehlersuche, indem Sie den Protokolliergrad und das Ziel der Protokolldatei über eine Konfigurationsdatei ändern können (Standard: sf_client_config.json).

Normalerweise ändern Sie Protokolliergrade nur, wenn Sie Ihrer Anwendung debuggen.

Diese Konfigurationsdatei verwendet JSON, um die Protokollierungsparameter log_level und log_path wie folgt zu definieren:

{
  "common": {
    "log_level": "INFO",
    "log_path": "/some-path/some-directory"
  }
}
Copy

Wobei:

  • log_level ist der gewünschte Protokolliergrad.

  • log_path ist der Speicherort der Protokolldateien. Der Treiber erstellt automatisch ein Unterverzeichnis nodejs in dem angegebenen Pfad log_path. Wenn Sie zum Beispiel log_path auf /Users/me/logs setzen, erstellt der Treiber das Verzeichnis /Users/me/logs/nodejs und speichert die Protokolle dort.

Der Treiber sucht in der folgenden Reihenfolge nach dem Speicherort der Konfigurationsdatei:

  • Verbindungsparameter clientConfigFile, der den vollständigen Pfad zur Konfigurationsdatei enthält, wie z. B.:

    const snowflake = require('snowflake-sdk');
    
    var connection = snowflake.createConnection({
      account: account,
      username: user,
      password: password,
      application: application,
      clientConfigFile: '/some/path/client_config.json'
    });
    
    Copy
  • Umgebungsvariable SF_CLIENT_CONFIG_FILE, die den vollständigen Pfad zur Konfigurationsdatei enthält (z. B. export SF_CLIENT_CONFIG_FILE=/some_path/some-directory/client_config.json).

  • Node.js-Treiberinstallationsverzeichnis, wo die Datei den Namen sf_client_config.json tragen muss.

  • Basisverzeichnis des Benutzers, in dem die Datei sf_client_config.json heißen muss.

Bemerkung

Zur Erhöhung der Sicherheit verlangt der Treiber, dass die Konfigurationsdatei für die Protokollierung auf Unix-Systemen die Dateiberechtigungen so einschränkt, dass nur der Eigentümer der Datei die Dateien ändern kann (z. B. chmod 0600 oder chmod 0644).

Um die Anzahl der Suchvorgänge nach einer Konfigurationsdatei zu minimieren, liest der Treiber nur die Konfigurationsdatei:

  • für die erste Verbindung.

  • für die erste Verbindung unter Verwendung des Parameters clientConfigFile.