按呼叫者过滤日志

时间:2018-08-13 13:07:06

标签: python logging

说,有一个模块,仅当从某个特定位置(其他模块的功能)调用该模块时,我才想从该模块记录日志,而不想看到其他模块。我该如何设置日志记录来实现这一目标?

我能想到的解决方案:

  • 在自定义Logger中保存调用堆栈信息,然后在自定义Filter中使用它。但这会使日志记录的轻量级降低。
  • 维护一些用于获取记录器的全局结构,该结构查询日志堆栈并管理(例如,基于函数装饰器)返回哪个记录器。记录器名称对象将反映意图,不会每次都保存调用堆栈,但这非常复杂,无法直接与现有库一起使用。

是否还有其他更好的解决方案?

我正在尝试为Python解决这个问题,因此是标记,但是其他语言的示例和解决方案也将受到赞赏。

0 个答案:

没有答案