파이썬에서는 로그를 남기기 위한 내장 모듈방식으로 제공되는 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
'computer' 카테고리의 다른 글
가상메모리 접근 권한 (0) | 2022.07.20 |
---|---|
가상메모리 페이징 기법의 구현 (0) | 2022.07.20 |
가상 메모리 개요 (0) | 2022.07.16 |
리눅스 권한 permission (ls 명령어) (0) | 2022.07.06 |
공유기의 원리와 역할 (0) | 2022.05.29 |