본문으로 바로가기

Python에서 로그를 남기는 방법

category Python/python 파헤치기 2019. 5. 17. 21:00

이 포스팅은 Python의 기본적인 logging 방법에 대해서 이해하기 위해 작성되었다. 이 포스팅의 최종 목표는 개발자가 로그를 어떻게 작성하는 것이 로그를 잘 활용할 수 있는지에 대한 방법을 알아보는 것이다. 몇개의 포스트로 나눠 작성될지 모르겠으나 연속된 포스팅이 불가능할 수도 있으므로, Logging과 관련된 링크는 아래에 추가하는 것으로 대신하도록 하겠다.


Logging이란 무엇인가

개발자가 시스템을 24시간 들여다보고 있을 순 없을 뿐더러 시스템이 오류 없이 항상 완벽게 동작할거라 보장할 수는 없다. 즉, 언제 어느 때든 예상하지 못한 시스템의 오류가 발생할 수 있고 이를 위한 후속 조치가 이뤄질 수 있도록 해야한다는 의미이다. 개발자가 오류를 고치기 위해서는, 에러가 발생하였을 당시의 시스템의 상황을 알 수 있어야 하는데 그러한 데이터를 남길 수 있도록 언어에서 지원하고 있는 기능이 바로 Logging이다. 파이썬에서는 개발자가 Logging을 남길 수 있도록 강력한 표준 라이브러리 logging을 제공하고 있다. 로깅을 활용한다면 오류를 해결할 뿐만 아니라 다음과 같은 방법으로도 데이터를 활용 할 수 있다는 장점이 있다.

  • 버그를 발견하고 처리하기 위한 데이터 제공
  • 경우에 따라 어플리케이션 내에 접근한 사용자의 IP 데이터 등을 텍스트 형태로 간편하게 기록
  • 개발자가 시스템 흐름을 이해하기 쉬움
  • 어플리케이션의 성능을 향상(scaling)하기 위한 계획이나, 마케팅을 위한 패턴을 분석하는 용도로 활용

기본적인 Logging 사용 방법

파이썬의 logging 모듈에서 제공하는 기본 기능은 초보자부터 기업에서 사용할 수 있을 만큼 강력하다. 기본적으로 logging에는 이벤트의 심각도(level)을 5가지로 나누고 잇으며, 각각에는 해당 심각도 수준의 이벤트를 기록하는데 사용할 수 있는 해당 메소드가 있다. 정의된 심각도는 순서대로 다음과 같다.

    • DEBUG
    • INFO
    • WARNING
    • ERROR
    • CRITICAL
1
2
3
4
5
6
import logging
 
logging.info('info test')
logging.debug('debug test')
logging.warning('warning test')
logging.error('error test')
cs

터미널에서 실행시켜보면 warning과 error 레벨의 경우에만 출력된다.

참고