파비의 매일매일 공부기록

Two Scoops of Django - #27장 본문

Study/Python

Two Scoops of Django - #27장

fabichoi 2021. 6. 28. 23:30

이번장은 로깅에 대한 내용이다.

실무에서는 센트리를 사용하고 있는데, 센트리에 접속해봐도 뭔가 엄청 많긴 한데 읽어보기가 되게 어려웠다.

이 챕터를 통해 뭔가 팁을 얻을 수 있으면 좋을 듯.

 

1. 애플리케이션 로그 대 기타 로그 : 이번장에서는 애플리케이션 로그에 집중할 예정. 다른 로그도 그냥 넘어가서는 안됨

 

2. 왜 로깅에 신경을 쓰는가 : 로깅은 스택 트레이스나 디버깅 도구로는 충분하지 못할 때 이용하는 도구다. DEBUG, INFO, WARNING, ERROR, CRITICAL 레벨로 구성된다.

 

3. 각 로그 레벨은 어떤 경우에 해당하는가 

 - CRITICAL : 급한 주의를 요구할 때. 핵심 기능인 경우.

 - ERROR : 상용 환경을 에러일 경우. 

 - WARNING : 중요도가 낮은 문제인 경우.

 - INFO : 유용한 상태 정보인 경우.

 - DEBUG : 디버그 관련 메시지인 경우.

 

4. 예외를 처리할 때 트레이스 백 로그 남길 것

 - Logger.exception()은 ERROR 레벨에서 자동으로 트레이스 백과 로그를 포함

 - 다른 로그 레벨에 대해서는 exec_info 옵션 키워드를 이용

 

5. 한 모듈당 한 개의 로거 쓰기 : 다른 모듈에서 로깅을 쓸 때 다른 곳에서 로거를 임포트 해서 재사용하지 말 것. 대신 새로운 로거를 모듈에 정의해서 쓸 것

 

6. 로컬에 로그 남기기와 로그 파일 로테이션 하기 : INFO나 그 이상은 디스크에 저장하기를 추천

 

7. 기타 팁

 - 장고 문서의 로깅 부분에 나와 있는 세팅 파일에서 로그 컨트롤하기

 - 디버깅할 때는 파이썬 로거를 DEBUG 레벨로 세팅하여 이용

 - DEBUG 레벨에서 테스트를 끝낸 이후 해당 로그들을 INFO나 WARNING 레벨로 변경.

 - 로깅 기능을 더 늦기 전에 추가할 것

 - ERROR이나 그 이상의 로그에 대해 이메일을 받을 것

 

반응형

'Study > Python' 카테고리의 다른 글

Two Scoops of Django - #29장  (0) 2021.06.30
Two Scoops of Django - #28장  (0) 2021.06.29
Two Scoops of Django - #26장  (0) 2021.06.27
Two Scoops of Django - #25장  (0) 2021.06.26
Two Scoops of Django - #24장  (0) 2021.06.25
Comments