繁体   English   中英

来自python中不同模块的多个日志文件

[英]Multiple log files from different modules in python

我有三个不同的模块,让我们调用ModuleAModuleBCommon Common模块包含一些ModuleAModuleB都需要的辅助方法。

我想为每个模块维护单独的日志文件,这意味着应该有ModuleA.logModuleB.log 因此,在每个模块中,我都创建了一个带有文件处理程序和相应文件名的记录器对象。

现在的问题是,如果我从ModuleA调用Common的方法,则应将Common的日志事件添加到ModuleA.log ,如果我从ModuleB调用方法,则应将Common的日志事件附加到ModuleB.log 为此,目前我正在将相应的logger对象作为参数传递给Common模块的方法,我觉得这不是一个好的解决方案。

有没有办法/模式来处理这种情况?

您可以在Common中有一个缓存字典,其他模块将能够导入和修改。

这是一个带有字符串的快速示例:

通用文件

CACHE = {'logger': None}

def func():
    print(CACHE['logger'])

模块A.py

from Common import CACHE, func

CACHE['logger'] = 'mod a'

func()
#mod a

模块B.py

from Common import CACHE, func

CACHE['logger'] = 'mod b'

func()
#mod b

如果使用 dict 感觉有点混乱,我认为您可能会创建一个类来处理您需要的特定位,它只需要就地更新而不是设置新值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM