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

2024-04-25 12:00:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有三个不同的模块,让我们调用ModuleAModuleBCommonCommon模块包含一些ModuleAModuleB都需要的助手方法。你知道吗

我想为每个模块维护单独的日志文件,也就是说,应该有ModuleA.logModuleB.log。所以在每个模块中,我都创建了一个带有文件处理程序和相应文件名的logger对象。你知道吗

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

有什么方法/模式来处理这种情况吗?你知道吗


Tags: 模块文件对象方法log处理程序参数文件名
1条回答
网友
1楼 · 发布于 2024-04-25 12:00:15

您可以在Common中有一个缓存dict,其他模块可以导入和修改它。你知道吗

下面是一个简单的字符串示例:

普通.py

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时感觉有点混乱,我认为可以创建一个类来处理所需的特定位,它只需要就地更新,而不是设置新的值。你知道吗

相关问题 更多 >

    热门问题