Python의 로깅 모듈을 사용한 사용자 정의 오류 처리
import sys
import logging
logger = logging.getLogger(__name__)
handler = logging.StreamHandler(stream=sys.stdout)
logger.addHandler(handler)
def handle_exception(exc_type, exc_value, exc_traceback):
# Ignore KeyboardInterrupt so the application can exit with Ctrl C
if issubclass(exc_type, KeyboardInterrupt):
sys.__excepthook__(exc_type, exc_value, exc_traceback)
return
# Log the uncaught exception
logger.error("Uncaught exception", exc_info=(exc_type, exc_value, exc_traceback))
sys.excepthook = handle_exception
# Example code to test the custom exception handling
if __name__ == "__main__":
raise RuntimeError("Test unhandled")
SYS 가져 오기 가져 오기 로깅 logger = logging.getLogger (__ name__) handler = logging.streamhandler (stream = sys.stdout) logger.addhandler (핸들러) def handle_exception (exc_type, exc_value, exc_traceback) : # KeyboardInterrupt 무시하여 응용 프로그램이 Ctrl C로 종료 할 수 있도록 ISSUBCLASS (exc_type, keyboardinterrupt) 인 경우 : sys .__ excepthook __ (exc_type, exc_value, exc_traceback) 반품 # 끊임없는 예외를 기록하십시오 logger.error ( "Uncaught Exception", exc_info = (exc_type, elc_value, exc_traceback)))) sys.excepthook = handle_exception # CODE CODE CODE CORTUAL EXCERNE HANDLING을 테스트합니다 __name__ == "__main__"인 경우 : rantimeerror ( "test unhandled")
로깅 모듈의 Error () 메소드를 사용하여 upphed 예외를 기록합니다. 사용자 정의 오류 처리를 보여주기 위해. 구성된 핸들러에 예외 세부 정보를 기록합니다. 이 경우 기본 스트림 핸들러는 예외 정보를 stdout에 출력하는 데 사용됩니다.
추가 기능
예제에는 몇 가지 옵션 기능이 포함되어 있습니다.
필터링 :
서브 클래스를 사용하여 특정 유형의 예외를 무시 확인.
사용자 정의 :로깅 핸들러를 수정하거나 여러 핸들러를 사용하여 예외 로그의 출력 형식 및 대상을 제어합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3