【发布时间】:2020-08-11 14:18:58
【问题描述】:
我有多个模块,由主脚本调用。每个都使用 logging Python 内置包记录消息。
如何在主脚本执行期间跨所有模块记录会话 ID,而无需在每个模块中推送此变量?
我已经建立了一个名为 config 的 python 配置文件:
import logging
logging.basicConfig(
level=logging.DEBUG,
format="%(filename)s:%(lineno)s|%(funcName)3s()|%(asctime)s|%(levelname)s|%(message)s",
handlers=[
logging.FileHandler("debug.log"),
logging.StreamHandler()
]
)
其他模块正在使用这个预先配置的日志对象,通过导入,所以我使用这个:
from config import logging
但我需要从当前会话中记录一个 ID,我的日志应如下所示:
module_name.py:25|function_name()|2020-04-27 18:28:26,518|INFO|Session_ID=abc123|some_message_here
我试图把这个变量放在配置文件中,设置它,然后在这个文件中名为“log_info”和“log_debug”的函数中使用它,但是我的输出日志没有跟踪python脚本名称和函数名称没有了。
有谁知道如何处理这种情况?
【问题讨论】: