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'}));
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
}
Wobei:
logLevel
ist der gewünschte Protokolliergrad.logFilePath
ist der Speicherort der Protokolldatei oderSTDOUT
für die Konsolenausgabe.additionalLogToConsole
ist ein boolescher Wert, der angibt, ob Protokollmeldungen auch an die Konsole gesendet werden sollen, wenn einelogFilePath
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"
}
}
Wobei:
log_level
ist der gewünschte Protokolliergrad.log_path
ist der Speicherort der Protokolldateien. Der Treiber erstellt automatisch ein Unterverzeichnisnodejs
in dem angegebenen Pfadlog_path
. Wenn Sie zum Beispiellog_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' });
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
.