ログレベルとファイルの構成

Node.jsドライバーは、アクティビティを追跡するために2種類のロガーをサポートしています。

  • ブラウザー内のインメモリバッファにログを保存するブラウザーロガー。

  • ノードロガーは、デフォルトではログを snowflake.log ファイルに保存してコンソールに表示します。

次のコードを使用して、ブラウザーロガーからノードロガーに切り替えることができます。この例では、ノードロガーに切り替えて、コンソールにメッセージを送信します。

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

サポートされているログレベル

Node.jsドライバーは、次のログレベルをサポートしています。

  • OFF

  • ERROR

  • WARNING

  • INFO

  • DEBUG

  • TRACE

デフォルトのログ動作の構成

次のように snowflake.configure を呼び出すことで標準ログを構成できます。

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

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

条件:

  • logLevel は希望する ログレベル です。

  • logFilePath はログファイル、またはコンソール出力の STDOUT の場所です。

  • additionalLogToConsole は、 logFilePath が指定されたときにログメッセージをコンソールにも送るかどうかを示すブール値です。デフォルト: true

コードのデバッグ中に簡単なログ記録を使用する

アプリケーションをデバッグするときにログレベルを上げると、アプリケーションの動作に関するより詳細な情報が得られます。簡単なログ機能を使用すると、構成ファイル(デフォルト: sf_client_config.json)を使用してログレベルとログファイルの保存先を変更できるため、デバッグが簡単になります。

通常は、アプリケーションをデバッグするときにのみログレベルを変更します。

この構成ファイルは、 JSON を使用して、 log_levellog_path のログパラメーターを以下のように定義します。

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

条件:

  • log_level は希望する ログレベル です。

  • log_path はログファイルを保存する場所です。ドライバーは、指定された log_pathnodejs サブディレクトリを自動的に作成します。たとえば、 log_path/Users/me/logs に設定すると、ドライバーは /Users/me/logs/nodejs ディレクトリを作成し、そこにログを保存します。

ドライバーは、以下の順序で構成ファイルの場所を検索します。

  • clientConfigFile 接続パラメーターには、次のような構成ファイルへの完全なパスが含まれます。

    const snowflake = require('snowflake-sdk');
    
    var connection = snowflake.createConnection({
      account: account,
      username: user,
      password: password,
      application: application,
      clientConfigFile: '/some/path/client_config.json'
    });
    
    Copy
  • SF_CLIENT_CONFIG_FILE 環境変数。構成ファイルへの完全なパスが含まれます(例: export SF_CLIENT_CONFIG_FILE=/some_path/some-directory/client_config.json)。

  • Node.jsドライバーのインストールディレクトリ。ファイル名は sf_client_config.json にする必要があります。

  • ユーザーのホームディレクトリ。ファイル名は sf_client_config.json にする必要があります。

注釈

セキュリティを強化するために、ドライバーはUnixスタイルのシステム上のログ設定ファイルでファイル権限を制限し、ファイル所有者のみがファイルを変更できるようにする必要があります(chmod 0600 または chmod 0644 など)。

構成ファイルの検索回数を最小限に抑えるために、ドライバーは次の場合にのみ構成ファイルを読み取ります。

  • 最初の接続の場合。

  • clientConfigFile パラメーターを使用して最初の接続に使用する場合。