ロギング設定と本番デプロイ
概要#
Flask アプリケーションにおけるロギング基盤の構築(ログローテーション、出力フォーマット)、およびレンタルサーバ等の本番環境(WSGI / CGI)へのデプロイ設定についてのまとめ。
参考ブログ記事#
1. ロギング設定 (RotatingFileHandler)#
アプリケーションの動作ログをファイル出力し、容量オーバーを防ぐためにサイズローテーションを設定する。
1import logging
2from logging.handlers import RotatingFileHandler
3import os
4
5def setup_logging(app):
6 if not os.path.exists("logs"):
7 os.mkdir("logs")
8
9 file_handler = RotatingFileHandler(
10 "logs/app.log", maxBytes=10240, backupCount=10, encoding="utf-8"
11 )
12 file_handler.setFormatter(
13 logging.Formatter(
14 "%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]"
15 )
16 )
17 file_handler.setLevel(logging.INFO)
18
19 app.logger.addHandler(file_handler)
20 app.logger.setLevel(logging.INFO)
21 app.logger.info("Flask App startup")2. 本番環境へのデプロイと WSGI 設定#
エントリポイント (wsgi.py)#
CGI / レンタルサーバ(さくらのレンタルサーバ等)での注意点#
.htaccessによるリライトルールの設定- 実行ユーザーの権限とパーミッション(
chmod 755 index.cgi等) - 仮想環境(Poetry / venv)の Python インタプリタパスの明示的指定(Shebang 行)
- 本番環境での
FLASK_DEBUG=0(デバッグモード無効化)の徹底
ここに掲載する記事はまだありません。
