小编ppo*_*sen的帖子

Python - 使用 structlog 从多个模块记录日志

我正在尝试使用 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)

python logging elasticsearch filebeat

5
推荐指数
1
解决办法
2207
查看次数

标签 统计

elasticsearch ×1

filebeat ×1

logging ×1

python ×1