49 lines
1.1 KiB
Python

import logging
logger = logging.getLogger(__name__)
# Keep in sync with ClickHouse priorities
# https://github.com/ClickHouse/ClickHouse/blob/master/src/Interpreters/InternalTextLogsQueue.cpp
log_priorities = (
'Unknown',
'Fatal',
'Critical',
'Error',
'Warning',
'Notice',
'Information',
'Debug',
'Trace',
'Test',
)
num_priorities = len(log_priorities)
def log_block(block):
if block is None:
return
column_names = [x[0] for x in block.columns_with_types]
for row in block.get_rows():
row = dict(zip(column_names, row))
if 1 <= row['priority'] <= num_priorities:
priority = log_priorities[row['priority']]
else:
priority = row[0]
# thread_number in servers prior 20.x
thread_id = row.get('thread_id') or row['thread_number']
logger.info(
'[ %s ] [ %s ] {%s} <%s> %s: %s',
row['host_name'],
thread_id,
row['query_id'],
priority,
row['source'],
row['text']
)