2

我想在我的应用程序中拥有一个记录到文件的通用日志记录模块。例如在我的 commonlog.py 中我可以有这样的东西:

# Python logging module
import logging                                                   

logging.basicConfig(filename="test.log", level=logging.DEBUG) 

从应用程序的其他模块中,我想导入这个模块并能够像使用 Python 日志记录模块一样使用它,但不需要复制其所有功能,例如来自模块 test.py:

import commonlog

commonlog.debug("debug message")
commonlog.info("info message")
commonlog.ANY_OTHER_METHOD_THAT_BELONGS_TO_LOGGING()

如何在我的 commonlog 中“代理”来自日志记录模块的所有方法?

正在做:

commonlogging.logging.etc..

不是一个有效的解决方案,因为它直接使用日志记录模块。

4

1 回答 1

2

我以前从来没有从一个模块“继承”,所以我不知道from logging import *commonlogging. 这是显示它似乎可以工作的代码:

>>> with open('mylogging.py', 'w') as f:
...     f.write('''from logging import *
... my_customization = "it works"''')
...
>>> import mylogging
>>> print mylogging.my_customization
it works
>>> help(mylogging.log)
Help on function log in module logging:

log(level, msg, *args, **kwargs)
    Log 'msg % args' with the integer severity 'level' on the root logger.
于 2012-10-17T18:54:30.840 回答