복붙노트

[PYTHON] python의 로깅 모듈을 사용하여 모든 예외 및 오류 기록

PYTHON

python의 로깅 모듈을 사용하여 모든 예외 및 오류 기록

특정 배경 파일의 오류를 확인하려고하지만 표준 오류 스트림이 전경의 프로그램에 의해 제어되고 질문에있는 파일의 오류가 표시되지 않습니다. 하지만 로깅 모듈을 사용하고 파일에 출력을 쓸 수는 있습니다. 나는 이것을 사용하여 모든 예외, 오류 및 추적 정보를 기록 할 수 있는지 궁금합니다.

해결법

  1. ==============================

    1.파이썬이 일반적인 제어 흐름에도 예외를 사용하기 때문에 프로그램 내에서 던져지는 예외를 기록하는 것은 나쁜 생각 일 것입니다.

    파이썬이 일반적인 제어 흐름에도 예외를 사용하기 때문에 프로그램 내에서 던져지는 예외를 기록하는 것은 나쁜 생각 일 것입니다.

    따라서 catch되지 않는 예외 만 기록해야합니다. 예외 객체가 있으면 일단 로거의 exception () 메서드를 사용하여 쉽게이 작업을 수행 할 수 있습니다.

    catch되지 않은 모든 예외를 처리하려면 try ... except 블록에 스크립트의 진입 점을 래핑하거나 sys.excepthook ()을 다시 할당하여 사용자 정의 예외 처리기를 설치하십시오.

    import logging
    import sys
    
    logger = logging.getLogger('mylogger')
    # Configure logger to write to a file...
    
    def my_handler(type, value, tb):
        logger.exception("Uncaught exception: {0}".format(str(value)))
    
    # Install exception handler
    sys.excepthook = my_handler
    
    # Run your main script here:
    if __name__ == '__main__':
        main()
    
  2. from https://stackoverflow.com/questions/8050775/using-pythons-logging-module-to-log-all-exceptions-and-errors by cc-by-sa and MIT license