配置日志级别和文件

Node.js 驱动程序支持通过两种类型的记录器来跟踪活动:

  • 浏览器记录器,可将日志存储在浏览器的内存缓冲区中。

  • 节点记录器,默认情况下将日志存储在 snowflake.log 文件中,并在控制台中显示。

您可以使用以下代码从浏览器记录器切换到节点记录器。此示例切换到了节点记录器,并向控制台发送消息。

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

支持的日志级别

Node.js 驱动程序日志级别:

  • OFF

  • ERROR

  • WARNING

  • INFO

  • DEBUG

  • TRACE

配置默认日志记录行为

您可以通过调用 snowflake.configure 来配置标准日志记录,类似如下:

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

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

其中:

  • logLevel 是所需的 日志记录级别

  • filePath 是日志文件或 STDOUT 的位置,用于控制台输出。

  • additionalLogToConsole 是一个布尔值,表示在指定 filePath 时是否也向控制台发送日志信息。默认: true

调试代码时使用 Easy Logging 功能

在调试应用程序时,提高日志级别可以提供更多有关应用程序正在执行的操作的详细信息。Easy Logging 功能可让您使用配置文件(默认值:sf_client_config.json)更改日志级别和日志文件目标,从而简化调试。

通常只有在调试应用程序时才会更改日志级别。

此配置文件使用 JSON 定义 log_levellog_path 日志记录参数,如下所示:

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

其中:

  • log_level 是所需的 日志记录级别

  • log_path 是存储日志文件的位置。驱动程序会自动在指定的 log_path 中创建 nodejs 子目录。例如,如果将 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 0600chmod 0644)。

为尽量减少搜索配置文件的次数,驱动程序:

  • 仅为第一次连接读取配置文件。

  • 仅使用 clientConfigFile 参数为第一个连接读取配置文件。

语言: 中文