我正在尝试使用 Structlog 来记录到文件,然后使用 filebeat 将日志发送到我的日志记录服务。
我已经使一切正常工作,但我希望能够在多个模块中使用相同的记录器,就像 Python 的默认记录器一样(请参阅https://docs.python.org/2/howto/logging.html部分“记录来自多个模块”)。
原因之一是我想将 sessionID 绑定到我的日志输出,该日志输出应该跨从此会话调用的所有模块进行记录。
可能需要一些有关如何使用 structlogger 的基础知识,但尚未在他们的文档或其他帖子中找到答案。
请指教....
一个例子:
主要.py
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
import uuid
from mylogger import myLogger
import otherModule
myLogger = myLogger()
myLogger.log.warning('working', error='test')
myLogger.log = myLogger.log.bind(sessionID=str(uuid.uuid4()))
myLogger.log.warning('Event where sessionID is bound to logger', error='test')
otherModule = otherModule.otherModule()
Run Code Online (Sandbox Code Playgroud)
myLogger.py
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
import datetime, logging
from structlog import wrap_logger, get_logger
from structlog.processors import JSONRenderer
from structlog.stdlib import filter_by_level, add_log_level
class myLogger():
def …Run Code Online (Sandbox Code Playgroud)