モジュールにロギングを含めたいが、モジュールに新しいログオブジェクト/ファイルを作成させたくない場合は、呼び出し元のログオブジェクトを使用したい彼らが1つを渡す場合。私はすべてのログをtryブロックに入れることができますが、それは厄介です。私が最終的に思いついたのはうまくいくようだが、それはかなりクルージングしているようだし、もっと良い方法があると確信している。Pythonの条件付きログ
class MyClass(object):
def __init__(self, arg1, arg2, log=None):
if log == None:
class log(object):
def error(self, msg): pass
def warning(self, msg): pass
def info(self, msg): pass
def debug(self, msg): pass
self.log = log()
else:
self.log = log
self.log.debug('Starting')
このような処理を行うにはどうすればよいでしょうか?
ありがとうございます!
私はそれがかなりいいと思う。あなたのログクラスをシングルトンに入れ、それを使って各クラスのコードを減らすには、それをNoneLogと呼んでください。 – Arne