로그 수준 및 파일 구성하기

Node.js 드라이버는 활동을 추적하기 위해 다음 두 가지 유형의 로거를 지원합니다.

  • 브라우저 내의 메모리 내 버퍼에 로그를 저장하는 브라우저 로거.

  • 기본적으로 로그를 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 입니다.

  • additionalLogToConsolelogFilePath 를 지정할 때 로그 메시지를 콘솔에도 보낼지 여부를 나타내는 부울 값입니다. 기본값: true.

코드를 디버깅하는 동안 간편한 로깅을 사용합니다

애플리케이션을 디버깅할 때 로그 수준을 높이면 애플리케이션이 수행하고 있는 작업에 대해 더욱 세부적인 정보를 제공할 수 있습니다. 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_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
  • 구성 파일(예: export SF_CLIENT_CONFIG_FILE=/some_path/some-directory/client_config.json)의 전체 경로를 포함하는 SF_CLIENT_CONFIG_FILE 환경 변수.

  • 파일 이름을 sf_client_config.json 으로 지정해야 하는 Node.js 드라이버 설치 디렉터리.

  • 파일 이름을 sf_client_config.json 으로 지정해야 하는 사용자의 홈 디렉터리.

참고

보안을 강화하기 위해 드라이버는 유닉스 스타일 시스템의 로깅 구성 파일에 파일 소유자만 파일을 수정할 수 있도록 파일 권한을 제한하도록 요구합니다(예: chmod 0600 또는 chmod 0644).

구성 파일 검색 횟수를 최소화하기 위해 드라이버는 다음의 경우에만 구성 파일을 읽습니다.

  • 첫 번째 연결의 경우.

  • clientConfigFile 매개 변수를 사용하는 첫 번째 연결의 경우.