로그 메시지 보기¶
Snowsight 를 통해 또는 로그 항목이 저장된 이벤트 테이블을 쿼리하여 로그 메시지를 볼 수 있습니다.
참고
로그 메시지를 사용하기 전에 원격 분석 데이터 수집을 활성화 해야 합니다.
Snowsight 의 로그 항목 보기¶
참고
로깅 및 추적에 대한 Snowsight 지원은 모든 계정에서 미리 보기 기능으로 제공됩니다.
Snowsight 를 사용하여 이벤트 테이블에 캡처된 로그 데이터를 볼 수 있습니다.
Snowsight 에 로그인합니다.
탐색 메뉴에서 Monitoring » Traces and Logs 를 선택합니다.
Traces & Logs 페이지에서는 다음 작업을 수행할 수 있습니다.
표시되는 행을 필터링하려면 페이지 상단의 드롭다운 메뉴를 사용합니다. 다음을 기준으로 필터링할 수 있습니다.
항목이 기록된 날짜 범위
항목을 내보낸 코드를 실행하는 Snowflake 사용자 이름
로그 항목 심각도
로그 항목을 내보낸 코드의 프로그래밍 언어
표시되는 데이터에서 특정 기간별로 항목을 필터링하려면 기간을 나타내는 그래프 막대를 선택합니다.
행을 정렬하려면 정렬 기준으로 사용할 열의 이름을 선택합니다.
Details 패널에서 항목에 대한 자세한 내용을 보려면 해당 항목의 행을 선택합니다.
이 패널에서는 이벤트 테이블에 저장된 자세한 정보를 볼 수 있습니다. 다음 테이블은 패널의 값을 설명합니다.
세부 정보
설명
기록 유형
선택한 행이 나타내는 이벤트 유형입니다. RECORD_TYPE 열 값에서 검색됩니다.
데이터베이스
항목을 내보낸 코드가 포함된 데이터베이스의 이름입니다. RESOURCE_ATTRIBUTES 열
snow.database.name
값에서 검색됩니다.스키마
항목을 내보내는 코드가 포함된 스키마의 이름입니다. RESOURCE_ATTRIBUTES 열
snow.schema.name
값에서 검색됩니다.심각도
로그 항목의 심각도입니다. RECORD 열
severity_text
값에서 검색됩니다.쿼리 ID
로그 항목이 내보내진 쿼리의 ID입니다. RESOURCE_ATTRIBUTES 열
snow.query.id
값에서 검색됩니다.오브젝트
내보낸 로그 항목의 소스 이름(예: 함수 또는 프로시저)입니다. RESOURCE_ATTRIBUTES 열
snow.executable.name
값에서 검색됩니다.웨어하우스
이벤트를 생성한 쿼리를 실행하는 웨어하우스의 이름입니다. RESOURCE_ATTRIBUTES 열
snow.warehouse.name
값에서 검색됩니다.소유자
세션에서 기본 역할의 이름입니다. RESOURCE_ATTRIBUTES 열
snow.session.role.primary.name
값에서 검색됩니다.로그 텍스트
로그 메시지 텍스트입니다. VALUE 열 값에서 검색됩니다.
이벤트 테이블에 대한 로그 항목 쿼리¶
기록된 메시지에 액세스하려면 이벤트 테이블에서 SELECT 명령을 실행합니다.
이벤트 테이블에는 다음을 포함하여 로깅된 메시지에 대한 정보를 캡처하는 미리 정의된 열 세트가 있습니다.
메시지가 수집된 타임스탬프
로그 이벤트가 생성된 클래스의 이름과 같은 로그 이벤트의 범위
데이터베이스, 스키마, 사용자, 웨어하우스 등 로그 이벤트 소스
로그의 심각도 수준
로그 메시지
이벤트 테이블 구조에 대한 참조 정보는 이벤트 테이블 열 섹션을 참조하십시오.
다음 섹션에서는 예제 데이터를 사용하여 이벤트 테이블에서 로그 메시지 데이터를 쿼리하는 방법을 설명합니다.
수집된 데이터¶
다음 예제의 출력에서는 두 개의 개별 처리기(하나는 Scala, 다른 하나는 Python으로 작성됨)에 대해 로그 메시지가 캡처된 후 이벤트 테이블에서 선택한 일부 열의 내용을 보여줍니다.
로그 메시지 데이터를 수집하는 이벤트 테이블 열에 대한 참조 정보는 로그의 데이터 섹션을 참조하십시오.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| TIMESTAMP | SCOPE | RESOURCE_ATTRIBUTES | RECORD_TYPE | RECORD | VALUE |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-19 22:00:49 | { "name": "python_logger" } | **See excerpt below** | LOG | { "severity_text": "INFO" } | Logging from Python module. |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-19 22:00:49 | { "name": "python_logger" } | **See excerpt below** | LOG | { "severity_text": "INFO" } | Logging from Python function start. |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-19 22:00:49 | { "name": "python_logger" } | **See excerpt below** | LOG | { "severity_text": "ERROR" } | Logging an error from Python handler. |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-19 22:12:55 | { "name": "ScalaLoggingHandler" } | **See excerpt below** | LOG | { "severity_text": "INFO" } | Logging from within the Scala constructor. |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-19 22:12:56 | { "name": "ScalaLoggingHandler" } | **See excerpt below** | LOG | { "severity_text": "INFO" } | Logging from Scala method start. |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-19 22:12:56 | { "name": "ScalaLoggingHandler" } | **See excerpt below** | LOG | { "severity_text": "ERROR" } | Logging an error from Scala handler: Something went wrong. |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
RESOURCE_ATTRIBUTES 발췌¶
다음 JSON에는 이전 출력의 RESOURCE_ATTRIBUTES 열에서 찾을 수 있는 값에서 발췌한 내용이 포함되어 있습니다. 각 snow.executable.name
이름-값 페어는 이전 출력의 다른 행에서 가져온 것입니다.
이 발췌문 다음에 나오는 SELECT 쿼리 코드는 RESOURCE_ATTRIBUTES 열의 값에서 선택합니다.
RESOURCE_ATTRIBUTES 열에는 이벤트 원본에 대한 데이터가 있습니다. 참조 정보는 RESOURCE_ATTRIBUTES 열 섹션을 참조하십시오.
{
...
"snow.executable.name": "ADD_TWO_NUMBERS(A FLOAT, B FLOAT):FLOAT"
...
}
{
...
"snow.executable.name": "ADD_TWO_NUMBERS(A FLOAT, B FLOAT):FLOAT"
...
}
{
...
"snow.executable.name": "ADD_TWO_NUMBERS(A FLOAT, B FLOAT):FLOAT"
...
}
{
...
"snow.executable.name": "DO_LOGGING():VARCHAR(16777216)"
...
}
{
...
"snow.executable.name": "DO_LOGGING():VARCHAR(16777216)"
...
}
{
...
"snow.executable.name": "DO_LOGGING():VARCHAR(16777216)"
...
}
SELECT 문을 사용한 쿼리¶
메시지 데이터를 쿼리할 때 열 내의 특성 값을 선택하려면 다음 형식과 같이 대괄호 표기법 을 사용합니다.
COLUMN_NAME['attribute_name']
다음 예제의 코드는 Python 처리기의 로그 메시지와 관련된 데이터를 분리하기 위해 앞의 테이블을 쿼리합니다. 이 쿼리에서는 로그 항목 심각도에 대해 severity_text
특성을 선택합니다. 로그 메시지에 대해서는 VALUE
열의 내용을 선택합니다.
처리기를 포함하는 프로시저를 do_logging
이라고 합니다. 쿼리가 작동하려면 프로시저 이름을 모두 대문자로 지정해야 합니다.
SET event_table_name='my_db.public.my_event_table';
SELECT
TIMESTAMP as time,
RESOURCE_ATTRIBUTES['snow.executable.name'] as executable,
RECORD['severity_text'] as severity,
VALUE as message
FROM
IDENTIFIER($event_table_name)
WHERE
SCOPE['name'] = 'python_logger'
AND RESOURCE_ATTRIBUTES['snow.executable.name'] LIKE '%DO_LOGGING%'
AND RECORD_TYPE = 'LOG';
쿼리 결과¶
다음 예제의 출력은 쿼리 결과를 보여줍니다.
----------------------------------------------------------------------------------------------------------------
| TIME | EXECUTABLE | SEVERITY | MESSAGE |
----------------------------------------------------------------------------------------------------------------
| 2023-04-19 22:00:49 | "DO_LOGGING():VARCHAR(16777216)" | "INFO" | "Logging from Python module." |
----------------------------------------------------------------------------------------------------------------
| 2023-04-19 22:00:49 | "DO_LOGGING():VARCHAR(16777216)" | "INFO" | "Logging from Python function start." |
----------------------------------------------------------------------------------------------------------------
| 2023-04-19 22:00:49 | "DO_LOGGING():VARCHAR(16777216)" | "ERROR" | "Logging an error from Python handler" |
----------------------------------------------------------------------------------------------------------------