모듈에 로깅을 포함시키고 싶지만, 모듈이 새로운 로그 객체/파일을 생성하는 것을 원하지 않습니다. 호출자 로그 객체를 사용하고 싶습니다. 그들이 하나를 통과한다면. 모든 로그 콜을 try 블록에 넣을 수는 있지만 어색합니다. 내가 마침내 생겨 났던 것은 효과가있는 것처럼 보이지만, 꽤 괴상한 것처럼 보이고, 더 좋은 방법이있을 것이라고 확신합니다.조건부 로깅 파이썬
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')
이렇게하는 것이 더 좋은 방법은 무엇입니까?
감사합니다.
나는 그것이 좋다고 생각한다. 로그 클래스를 싱글 톤 (singleton)에 넣고 NoneLog 또는 이와 비슷한 이름으로 호출하면 각 클래스의 코드를 줄일 수 있습니다. – Arne