장고는 파이썬에 내장된 로깅모듈을 사용한다.
로거는 로깅 시스템의 진입점이다. 각각의 로거는 어떤 메세지가 쓰여질 수 있는지에 대해 이름이 붙은 버킷이다.
로거는 로그 레벨
을 나눈다.
핸들러는 로거의 메세지들에게 무슨 일이 일어날 지 정하는 엔진이다. 특정한 로깅 행동을 설명한다. (화면출력? 파일출력? 등등..)
로거처럼 핸들러 또한 로그 레벨이 있다. 로그 자체의 레벨이 핸들러의 레벨보다 낮다면 핸들러는 이 메세지를 무시한다.
로거는 여러개의 핸들러를 가질 수 있고 각각의 핸들러는 다른 로그 레벨을 가질 수 있다. 이는 메세지의 중요도에 따라 다른 알람을 줄 수 있다.
필터는 로거
에서 핸들러
로 어떤 로그가 넘겨질 지 추가적
인 컨트롤을 제공한다.
필터는 ERROR
메세지를 특정한 소스에서는 빠지게 할 수 있다던가, ERROR
메세지를 WARNING
으로 다운그레이드 한다던가 할 수 있다.
필터는 로거, 핸들러 양쪽에 여러 개 설치 될 수 있다.
궁극적으로 로그들은 텍스트로 출력되어야 한다. 포매터는 이 텍스트의 포맷을 지정하는 것이다.
# 특정한 이름의 로거 인스턴스 만들기
logger = logging.getLogger('프로젝트.흠터레스팅.이름')
로거의 이름에서 .
은 계층을 나타낸다.프로젝트.흠터레스팅
은 프로젝트.흠터레스팅.이름
의 부모이다.
이런 방식은 왜 쓰는가? 프로젝트.흠터레스팅
은 프로젝트.흠터레스팅.이름
에서 나오는 모든 로그 메세지들을 잡아낸다.
기본적으로는 로그 레벨에 따른 진입 함수가 있다.
이외에도 2개의 다른 메소드가 있다.
ERROR
레벨의 로그 메세지를 만든다.