[python] Flask-RESTful에서 요청에 대한 로그 기록 방법
Flask-RESTful은 Python 웹 프레임워크인 Flask를 기반으로 한 RESTful API를 구축하기 위한 도구입니다. 이 도구를 사용하면 간단하게 API 엔드포인트를 정의하고 요청과 응답을 처리할 수 있습니다. 이번에는 Flask-RESTful에서 클라이언트의 요청에 대한 로그를 기록하는 방법에 대해 알아보겠습니다.
Logging 모듈 사용하기
Python에는 로깅을 위한 기능을 제공하는 logging
모듈이 있습니다. Flask-RESTful에서도 이 모듈을 사용하여 요청에 대한 로그를 기록할 수 있습니다. 아래는 예시 코드입니다.
from flask import Flask
from flask_restful import Api, Resource
import logging
app = Flask(__name__)
api = Api(app)
# 로그 설정
log = logging.getLogger('my_logger')
log.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
# 로그 파일로 기록
file_handler = logging.FileHandler('api.log')
file_handler.setLevel(logging.DEBUG)
file_handler.setFormatter(formatter)
log.addHandler(file_handler)
class MyResource(Resource):
def get(self):
# 로그 기록
log.info('GET 요청이 들어왔습니다.')
return {'message': 'GET 요청을 받았습니다.'}, 200
api.add_resource(MyResource, '/my-resource')
if __name__ == '__main__':
app.run(debug=True)
위의 코드에서는 logging
모듈을 사용하여 my_logger
라는 이름의 로거를 생성하고, 해당 로거의 로그 레벨을 DEBUG
로 설정한 후, 파일로 로그를 기록하도록 설정했습니다. GET 메서드가 호출될 때마다 log.info()
를 통해 로그를 기록하고, 파일에 로그가 저장됩니다.
로그를 기록할 파일명과 로그 레벨 등을 적절하게 설정하여 위의 코드를 실행하면, API 서버가 실행되고 클라이언트의 요청에 대한 로그가 파일에 기록될 것입니다.
결론
Flask-RESTful에서 클라이언트의 요청에 대한 로그를 기록하는 방법을 살펴보았습니다. logging
모듈을 사용하여 로깅 기능을 구현하고, 로그 파일에 요청과 관련된 정보를 저장할 수 있습니다. 이를 통해 API의 운영과 디버깅에 도움이 될 수 있습니다.