본문 바로가기

computer

파이썬에서 logging 모듈 사용하기

파이썬에서는 로그를 남기기 위한 내장 모듈방식으로 제공되는 logging이 있다.

 

원하는 로깅 수준을 설정할 수 있는 중요도(level),

출력 형식을 관리하는 포매터(formatter),

출력 대상을 관리하는 처리기(handler) 등을 활용하여 원하는 방식의 로그를 남길 수 있다. 

 

yaml, conf, 파이썬 코드활용 등으로 로깅 구성 정보 (logging config)를 편리하게 관리한다.

 

로그를 남기는 순서는 첨부한 그림과 같다.

 

로깅 호출이 되면 프로그램에서 설정한 중요도(level)를 확인하고

로거의 필터가 해당 기록을 거부하는지 확인한다.

로거 설정을 추가로 확인한 후에 핸들러로 로그 기록을 넘긴다. 

핸들러와 중요도를 비교하고 역시 필터를 거친 후에

미리 설정한 포맷(format)으로 로그를 생성한다.

로깅 플로우 (파이썬 공식문서, 문서 하단 첨부)

중요도(level) : DEBUG, INFO, WARNING, ERROR, CRITICAL

핸들러: StreamHandler, FileHandler, SocketHandler, SMTPHandler 등 

 

로깅 중 Handler 서브 클래스의 emit() 메서드 실행 중 발생하는 예외는 SystemExit과 KeyboardInterrupt 예외를 제외하고 handleError() 메서드에 전달된다. 로깅이벤트를 처리하는 동안 응용프로그램을 종료하지 않도록 위함이다.

 

 

reference

https://docs.python.org/ko/3/howto/logging.html

 

로깅 HOWTO — Python 3.10.5 문서

매우 일반적인 상황은 로깅 이벤트를 파일에 기록하는 것이므로, 다음으로 살펴보겠습니다. 새로 시작된 파이썬 인터프리터에서 다음을 시도해보고, 위에서 설명한 세션을 계속 진행하지는 마

docs.python.org

 

'computer' 카테고리의 다른 글

가상메모리 접근 권한  (0) 2022.07.20
가상메모리 페이징 기법의 구현  (0) 2022.07.20
가상 메모리 개요  (0) 2022.07.16
리눅스 권한 permission (ls 명령어)  (0) 2022.07.06
공유기의 원리와 역할  (0) 2022.05.29