웹 서버 개발 시 로깅은 매우 중요한 기능입니다. 로깅을 통해 서버 동작 상태와 오류를 기록하여 디버깅 및 모니터링을 쉽게 할 수 있습니다. 이번 포스트에서는 Python 웹 서버에 로깅 기능을 추가하는 방법을 알아보겠습니다.
로깅 라이브러리 선택
Python에서는 다양한 로깅 라이브러리가 제공됩니다. 기본적인 logging 라이브러리, Django의 logging 라이브러리, Flask의 logging 라이브러리 등이 있습니다. 각각의 라이브러리는 강점과 특징이 있으므로 프로젝트에 가장 적합한 라이브러리를 선택해야 합니다. 이 예시에서는 기본 logging 라이브러리를 사용하는 방법을 알아보겠습니다.
로깅 설정하기
먼저 로깅을 위한 설정을 해줍니다. logging 모듈을 임포트한 후, 로그 레벨, 로그 포맷, 로그 파일 등을 설정합니다.
import logging
# 로그 레벨 설정
logging.basicConfig(level=logging.INFO)
# 로그 포맷 설정
log_format = '%(asctime)s [%(levelname)s] %(message)s'
logging.basicConfig(format=log_format)
# 로그 파일 설정
logging.basicConfig(filename='server.log', filemode='w')
위의 예시에서는 로그 레벨을 INFO로 설정하였고, 로그 포맷은 시간+[로그레벨]+메시지 형태로 지정했습니다. 또한 로그 파일을 ‘server.log’로 설정하고, 새로운 로그를 기록할 때마다 파일을 새로 생성하도록 filemode를 ‘w’로 설정했습니다.
로그 사용하기
로깅을 사용하기 위해 getLogger() 메서드를 호출하여 로거 객체를 생성합니다. 그리고 로그 메시지를 출력할 수 있는 핸들러(handler)를 추가합니다. 이 예시에서는 StreamHandler를 사용하여 콘솔에 로그 메시지를 출력하는 방법을 보여줍니다.
logger = logging.getLogger(__name__)
console_handler = logging.StreamHandler()
logger.addHandler(console_handler)
로그 메시지 출력하기
로그 메시지를 출력할 때는 로거 객체를 사용합니다. 아래 예시는 ‘Hello, World!’라는 로그 메시지를 출력하는 방법입니다.
logger.info('Hello, World!')
마치며
이번 포스트에서는 Python 웹 서버에 로깅 기능을 추가하는 방법을 알아보았습니다. 다양한 로깅 라이브러리를 사용하여 더욱 다양한 기능을 구현할 수 있으며, 로깅은 서버 개발에 있어 중요한 도구입니다. 디버깅과 모니터링을 원활하게 진행하기 위해 로깅을 적극적으로 활용해보세요!