[英]Multiple log files from different modules in python
我有三个不同的模块,让我们调用ModuleA
、 ModuleB
和Common
。 Common
模块包含一些ModuleA
和ModuleB
都需要的辅助方法。
我想为每个模块维护单独的日志文件,这意味着应该有ModuleA.log
和ModuleB.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.