2012-10-17 28 views
1

我想在我的應用程序中有一個通用日誌記錄模塊,它可以記錄到文件中。 例如,在我的commonlog.py我能有這樣的事情:如何將所有方法從Python模塊代理到另一個?

# 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.. 

不是一個有效的解決方案,因爲它直接使用日誌模塊。

+0

從日誌導入調試爲blablablalog? – ronak

回答

2

我從來沒有從模塊中「繼承」,因此我不知道在commonlogging的頂部做from logging import *是天真的。這裏的代碼顯示它似乎工作:

>>> 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. 
+0

我不知道爲什麼我沒有想到,'從模塊導入*'應該做的伎倆,謝謝! –

相關問題