이 포스팅은 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 레벨의 경우에만 출력된다.
참고
'Python > python 파헤치기' 카테고리의 다른 글
Python 클로저(closure) 이해하기 (0) | 2019.06.11 |
---|---|
객체 지향 프로그래밍 특징 (추상화, 캡슐화, 상속, 다형성) (0) | 2019.05.13 |
Python의 변수(Variable)는 다른 언어와 무엇이 다를까 (0) | 2019.04.24 |
Python 내장 함수의 시간 복잡도 (0) | 2019.02.14 |