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()

logging モジュールからのすべてのメソッドを commonlog で「プロキシ」するにはどうすればよいですか?

やっている:

commonlogging.logging.etc..

logging モジュールを直接使用しているため、有効なソリューションではありません。

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 に答える