JavaScript에서 메시지 로깅하기¶
Snowflake JavaScript API에 포함된 snowflake
오브젝트를 사용하여 JavaScript로 작성된 함수 또는 프로시저 처리기의 메시지를 로깅할 수 있습니다. 로그 항목을 저장하도록 이벤트 테이블을 설정하면 Snowflake가 처리기 코드에서 생성된 로그 항목을 테이블에 저장합니다. JavaScript API에 대한 참조 자료는 JavaScript 저장 프로시저 API 섹션을 참조하십시오.
코드에서 로깅하기 전에 원하는 메시지가 이벤트 테이블에 저장되도록 로깅 수준을 설정했는지 확인합니다. 자세한 내용은 로깅, 메트릭 및 추적을 위한 수준 설정하기 섹션을 참조하십시오.
참고
메시지 로깅을 시작하려면 먼저 이벤트 테이블을 설정해야 합니다. 자세한 내용은 이벤트 테이블 개요 섹션을 참조하십시오.
이벤트 테이블에서 SELECT 명령을 실행하여 로그 메시지에 액세스할 수 있습니다. 자세한 내용은 로그 메시지 보기 섹션을 참조하십시오.
Snowflake에서 로깅 설정 및 메시지 검색에 대한 일반적인 정보는 함수 및 프로시저의 메시지 로깅하기 섹션을 참조하십시오.
다음 예제의 코드에서는 포함된 snowflake
오브젝트를 사용하여 지원되는 각 수준에서 메시지를 로깅합니다. 참고로, 입력 행을 처리하는 메서드에서 로깅된 메시지는 UDF에서 처리한 모든 행에 대해 로깅됩니다. UDF가 큰 테이블에서 실행되면 이벤트 테이블에 많은 수의 메시지가 생성될 수 있습니다.
snowflake.log("info", "Information-level message");
snowflake.log("error", "Error message");
snowflake.log("warn", "Warning message");
snowflake.log("debug", "Debug message");
snowflake.log("trace", "Trace message");
snowflake.log("fatal", "Fatal message");
사용자 지정 특성 추가하기¶
로그 항목을 생성할 때 키-값 페어로 사용자 고유의 특성을 추가할 수 있습니다. Snowflake는 이러한 사용자 지정 특성을 이벤트 테이블의 RECORD_ATTRIBUTES 열 에 저장합니다.
snowflake.log
메서드를 호출할 때 사용자 지정 특성을 추가하려면 log
함수에 세 번째 인자로 전달한 JSON 형식의 키-값 페어를 조합합니다.
다음 예제의 코드는 이벤트 테이블의 VALUE 열에 “특성 포함 기록” 메시지를 기록합니다. 또한 2개의 RECORD_ATTRIBUTES 열에 사용자 지정 특성도 추가합니다.
CREATE OR REPLACE PROCEDURE do_logging_javascript()
RETURNS VARCHAR
LANGUAGE JAVASCRIPT
AS $$
let log_attributes = {
"custom1": "value1",
"custom2": "value2"
}
snowflake.log("info", "Logging with attributes", log_attributes)
return "success";
$$;
이 log
호출의 출력은 이벤트 테이블에 다음과 같이 표시됩니다. RECORD_ATTRIBUTES 열에는 Snowflake가 자동으로 추가하는 특성이 포함됩니다.
------------------------------------------------------------------
| VALUE | RECORD_ATTRIBUTES |
------------------------------------------------------------------
| "Logging with attributes" | { |
| | "custom1": "value1", |
| | "custom2": "value2" |
| | } |
------------------------------------------------------------------