"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Python의 로깅 모듈로 사용자 정의 예외 처리를 구현하는 방법은 무엇입니까?

Python의 로깅 모듈로 사용자 정의 예외 처리를 구현하는 방법은 무엇입니까?

2025-02-19에 게시되었습니다
검색:214

How to Implement Custom Exception Handling with Python\'s Logging Module?

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")

    파이썬 응용 프로그램. 수동으로 잡기 및 로깅 예외는 실행 가능한 접근 방식이지만 지루하고 오류가 발생할 수 있습니다.
  • 이 문제를 해결하기 위해 Python을 사용하면 기본 예외 처리 메커니즘을 무시하고 로깅 모듈에 대한 예외를 리디렉션 할 수 있습니다. 이것은 자세한 예외 정보를 캡처하고 로그인하는 편리하고 체계적인 방법을 제공합니다.
  • 솔루션
  • 전역 sys.exceptook 함수를 수정하여 제시된 문제를 해결할 수 있습니다. 사용자 정의 예외 핸들러를 정의하면 모든 예외를 가로 채서 원하는대로 처리 할 수 ​​있습니다. 다음은 완전하고 강력한 예입니다.

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")

  • handsexception을 정의합니다. 끊임없는 예외가 발생하는 경우.
  • 응용 프로그램이 Exit Grady.

로깅 모듈의 Error () 메소드를 사용하여 upphed 예외를 기록합니다. 사용자 정의 오류 처리를 보여주기 위해. 구성된 핸들러에 예외 세부 정보를 기록합니다. 이 경우 기본 스트림 핸들러는 예외 정보를 stdout에 출력하는 데 사용됩니다. How to Implement Custom Exception Handling with Python\'s Logging Module?

추가 기능

예제에는 몇 가지 옵션 기능이 포함되어 있습니다.

필터링 :

서브 클래스를 사용하여 특정 유형의 예외를 무시 확인.

사용자 정의 :

로깅 핸들러를 수정하거나 여러 핸들러를 사용하여 예외 로그의 출력 형식 및 대상을 제어합니다.

            
릴리스 선언문 이 기사는 다음과 같이 재현됩니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3