49 lines
1.1 KiB
Python
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']
|
|
)
|