python - 来自多个地方的 Python 日志记录调用模块
问题描述
我想使用 python 的日志记录模块和点“。”为我的项目设置日志记录层次结构。此处描述的名称结构:https ://docs.python.org/2/library/logging.html#logging.getLogger
对于给定的模块(bar.py),我想设置记录器,例如:
log = logging.getLogger('x.bar')
然后我可以在整个 bar.py 模块中使用 log.(debug/info/warning/etc...)。我知道 bar.py 永远不会直接运行,但其中的函数可能会从其他几个模块调用 - 所以我不知道在代码片段中将“x”设置为什么。我希望 bar.py 从它的调用者 (x) 继承日志处理程序和格式化程序。
解决方案
通过实例化模块范围的记录器的标准方法logging.getLogger('mymodule')
不是为您的预期行为量身定制的。相反,您应该做的是让调用者将记录器作为参数传递给模块中的函数
# mymodule.py
def foo(plogger, a, b):
logger=plogger.getChild('bar')
...
推荐阅读
- javascript - 如何在html文件中调用JS函数
- ios - 并非所有输入字段都放大
- tensorflow - 我应该使用哪个 tensorflow API 来制作这个张量?
- javascript - 在线存储 FCM 代币
- vue.js - 使用 vue-cli-3 的全局共享变量 vue.js
- react-native - 如何获取和流式传输电话麦克风音频
- amazon-web-services - 通过 Cloudformation 配置时,SNS 主题未发送管道事件更改电子邮件
- azure - Azure vm 规模集,缩放配置文件最小实例限制含义
- swift - 线程 6:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)
- fullcalendar - jalali(波斯)日历视图的Fullcalendar 4 alpha问题