-
-
Notifications
You must be signed in to change notification settings - Fork 265
Open
Description
| _logger.add(sys.stderr, filter=self.__filter, format=format_str, enqueue=True) |
参考如下的代码, 现在 filter 的方法,可能可以实现同样的功能,但是语法检查会提示错误:
@staticmethod
def __patcher(record):
"""
自定义日志格式化器,添加trace_id
"""
if 'trace_id' not in record['extra']:
record['extra']['trace_id'] = getattr(
record['extra'], 'trace_id', TraceCtx.get_id())
def init_log(self):
"""
初始化日志配置
"""
# 自定义日志格式
format_str = (
'<green>{time:YYYY-MM-DD HH:mm:ss.SSS}</green> | '
'<cyan>{extra[trace_id]}</cyan> | '
'<level>{level: <8}</level> | '
'<cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - '
'<level>{message}</level>'
)
_logger.remove()
# 移除后重新添加sys.stderr, 目的: 控制台输出与文件日志内容和结构一致
_logger.add(sys.stderr, format=format_str, enqueue=True)
_logger.add(
self.log_path_error,
format=format_str,
rotation='50MB',
encoding='utf-8',
enqueue=True,
compression='zip',
)
return _logger.patch(self.__patcher)
Metadata
Metadata
Assignees
Labels
No labels