728x90
반응형
질문 : Python 로거가 로그 파일 외에도 모든 메시지를 stdout에 출력하도록 만들기
logging
모듈을 사용하여 파이썬 로깅을 만드는 방법이 있습니까? 가야 할 로그 파일 외에도 stdout에 자동으로 출력하는 방법이 있습니까? 예를 들어, logger.warning
, logger.critical
, logger.error
에 대한 모든 호출이 의도 한 위치로 이동하고 또한 항상 stdout
복사되기를 바랍니다. 이는 다음과 같은 메시지가 중복되지 않도록하기위한 것입니다.
mylogger.critical("something failed")
print "something failed"
답변
모든 로깅 출력은 핸들러에 의해 처리됩니다.logging.StreamHandler()
를 루트 로거에 추가하기 만하면됩니다.
다음은 스트림 핸들러를 구성하고 (기본 stderr
stdout
사용) 루트 로거에 추가하는 예입니다.
import logging
import sys
root = logging.getLogger()
root.setLevel(logging.DEBUG)
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
root.addHandler(handler)
출처 : https://stackoverflow.com/questions/14058453/making-python-loggers-output-all-messages-to-stdout-in-addition-to-log-file
728x90
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
PyPy가 6.3 배 빠르면 CPython보다 PyPy를 사용하면 안되는 이유 (0) | 2021.11.02 |
---|---|
파이썬의 print 기능을 화면에 강제로 출력하는 방법 (0) | 2021.11.02 |
Python 람다(lambda)가 유용한 이유 (0) | 2021.11.01 |
파이썬에서 명시 적으로 메모리를 해제하는 방법 (0) | 2021.10.26 |
파이썬에서 코드 블록을 주석 처리하는 방법 (0) | 2021.10.26 |