↓ メインコンテンツへスキップ

ロギング設定と本番デプロイ

概要
#

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)
#

1from app import create_app
2
3app = create_app()
4
5if __name__ == "__main__":
6    app.run()

CGI / レンタルサーバ(さくらのレンタルサーバ等)での注意点
#

  • .htaccess によるリライトルールの設定
  • 実行ユーザーの権限とパーミッション(chmod 755 index.cgi 等)
  • 仮想環境(Poetry / venv)の Python インタプリタパスの明示的指定(Shebang 行)
  • 本番環境での FLASK_DEBUG=0 (デバッグモード無効化)の徹底

ここに掲載する記事はまだありません。