Python 프로그램이 끝나면 표준 logging
모듈을 통해 기록 된 항목의 수를 요약해서 볼 수 있습니다. 나는 특별히 지정된 이름 (그리고 아마도 그 자식들)마다 카운트를 얻을 수 있기를 바란다. 예 : 내가있는 경우 : 내가 로거 또는 핸들러에 대한 getcount()
메서드를 호출하여, 생각하고파이썬 로깅 요약 횟수
input: 5
input.network: 2
output: 1
:
input_logger = getLogger('input')
input_logger.debug("got input1")
input_logger.debug("got input2")
input_logger.debug("got input3")
network_input_logger = getLogger('input.network')
network_input_logger.debug("got network input1")
network_input_logger.debug("got network input2")
getLogger('output')
output_logger.debug("sent output1")
는 그런 말에 나는 같은 요약을 좀하고 싶습니다.
이것을 달성하는 좋은 방법은 무엇입니까? logging
모듈의 클래스 중 하나의 하위 클래스가 포함될 것이라고 상상하지만, 가장 좋은 방법은 무엇이 될지 잘 모르겠습니다.
class myDecorator(object):
def __init__(self, inner):
self.inner = inner
self.log = {}
def __getattr__(self,name):
self.log[name] = self.log.get(name,0)+1
return getattr(self.inner,name)
def __setattr__(self,name,value):
setattr(self.inner,name,value)
을 당신이 각 방법에 호출 수를 기록하지 않았다 실현하고 있습니다 : 꽤 우아한 될 수있는 장식을 사용하여
는
+1 일례를 포함한 !!! –