2013-09-06 7 views
1

내가 파이썬 모듈과 클래스를 쓸 때 나는 자주 의심을 가지고 :파이썬, 로깅 및 디자인

내가 로깅 및/만드는 방법 로거를 제어하는 ​​주요 플래그를 넣어하는 방법/

,

  • 모듈 수준에 있어야합니까? --- 따라서 각 메서드 내 거의 모든 곳에 global MyLogger이 있어야합니다.

  • 메소드 및/또는 클래스에 전달되는 인수 여야합니까? 아마도 메서드 나 클래스가 필요로하는지 여부를 결정하기 위해 myMethod(..., logger=Mylogger)과 같은 호출을 사용하여 **args 별 마법을 사용할 수 있습니까?

  • 어디에서 I_logged_something 플래그를 정의/설정해야합니까? (... 또는 if MyLogger: MyLogger.log('something')에 의존해야합니까?)

  • 클래스 또는 모듈을 가져올 때는 어떤가요?

로깅의 Python 방식은 무엇입니까? 로깅 도구는 어떻게 사용합니까?

답변

4

로깅은 관계없이 모든 곳에서 사용됩니다. 당신의 모듈에서

는 사용

import logging 

log = logging.getLogger(__name__) 

멀리 로그인합니다. 로깅 할 메시지 유형에 따라 다른 수준 (log.info(), log.debug(), log.error() 등)을 사용하십시오.

의 기본 진입 점은logging 모듈 출력을 구성합니다. 여기에는 모든 출력을 완전히 비활성화하거나 디버그 정보를 파일로 보내지 만 콘솔에 오류를 기록하는 작업이 포함될 수 있습니다.

모듈은주의를 기울일 필요가 없으며 logging 모듈은 출력 핸들러의 구성 및 전역 상태로의 형식을 처리합니다.

+1

더 정확하게, * 당신은 메인 엔트리 포인트에서 적절한 로깅 코드를 호출하여 핸들러, 레벨 등의 로깅 설정을 처리합니다. –