Flask-RESTful은 Python 웹 프레임워크인 Flask를 기반으로한 REST API를 빠르고 간편하게 개발하기 위한 도구입니다. Flask-RESTful은 기본적으로 로깅을 제공하지 않지만, Python의 기본 로깅 모듈인 logging
을 사용하여 자동 로깅을 구현할 수 있습니다.
이번 블로그 포스트에서는 Flask-RESTful에서 수동 로깅을 대신하여 자동 로깅을 설정하는 방법에 대해 알아보겠습니다.
1. Flask-RESTful과 logging 모듈 임포트하기
먼저, Flask-RESTful과 logging 모듈을 임포트해야 합니다. 아래 코드를 참고하세요.
from flask import Flask
from flask_restful import Api, Resource
import logging
2. 로깅 설정하기
다음으로, 로깅을 설정해야 합니다. Flask 애플리케이션을 생성한 후 로깅 설정을 추가해야 합니다. 아래 코드를 참고하세요.
app = Flask(__name__)
api = Api(app)
# 로깅 설정
log_format = '%(asctime)s [%(levelname)s] %(message)s'
logging.basicConfig(filename='app.log', level=logging.INFO, format=log_format)
위 코드에서는 basicConfig
함수를 사용하여 로깅 설정을 추가하였습니다. filename
인자를 통해 로그 파일의 이름을 지정할 수 있으며, level
인자를 통해 로그 레벨을 설정할 수 있습니다. 위 코드에서는 로그 레벨을 INFO로 설정하였습니다.
3. API 엔드포인트에 로깅 추가하기
이제 API의 각 엔드포인트에서 로깅을 추가해야 합니다. Flask-RESTful에서는 Resource 클래스를 상속받은 클래스를 만들어 API 엔드포인트를 정의합니다. 아래 코드를 참고하세요.
class HelloWorld(Resource):
def get(self):
app.logger.info('HelloWorld GET 요청')
return {'message': 'Hello, World!'}
api.add_resource(HelloWorld, '/hello')
위 예제에서는 HelloWorld
클래스에서 GET 메서드가 호출될 때마다 app.logger
를 사용하여 로그를 추가하였습니다. 이렇게 로깅을 추가하면 API 요청과 응답에 대한 정보를 로그로 남길 수 있습니다.
4. 실행 및 로그 확인
위의 설정이 완료된 후, Flask 애플리케이션을 실행하고 /hello
엔드포인트에 GET 요청을 보내면 로그 파일에 로그가 기록됩니다.
$ python app.py
위와 같이 애플리케이션을 실행한 후, 브라우저나 curl을 사용하여 http://localhost:5000/hello
에 GET 요청을 보내면 로그 파일인 app.log
에 로그가 기록됩니다.
마치며
Flask-RESTful로 개발한 REST API에서 로깅을 자동으로 설정하는 방법에 대해 알아보았습니다. 로깅을 사용하면 애플리케이션의 동작 상황을 통계 및 분석하고 디버깅하는 데 도움이 됩니다. Flask-RESTful과 logging을 적절히 함께 사용하면 효과적인 로깅 시스템을 구축할 수 있습니다.
참고문서: