29 lines
806 B
Python
29 lines
806 B
Python
"""
|
|
日志工具 - 统一格式,带 task_id 作为 trace_id
|
|
"""
|
|
import logging
|
|
import sys
|
|
|
|
|
|
def setup_logger(name='fam-edge', level=logging.INFO):
|
|
logger = logging.getLogger(name)
|
|
if logger.handlers:
|
|
return logger
|
|
logger.setLevel(level)
|
|
handler = logging.StreamHandler(sys.stdout)
|
|
formatter = logging.Formatter(
|
|
'%(asctime)s [%(name)s] %(levelname)s %(message)s',
|
|
datefmt='%Y-%m-%d %H:%M:%S'
|
|
)
|
|
handler.setFormatter(formatter)
|
|
logger.addHandler(handler)
|
|
return logger
|
|
|
|
|
|
def log_task(logger, task_id, stage, message, level=logging.INFO, duration_ms=None):
|
|
parts = [f"[task_id={task_id}]", stage]
|
|
if duration_ms is not None:
|
|
parts.append(f"done in {duration_ms}ms")
|
|
parts.append(message)
|
|
logger.log(level, ' '.join(parts))
|