flask: sqlalchemy记录sql日志

一,创建目录

用来保存sql日志

$ sudo mkdir /var/log/sqlalchemy
$ sudo chmod 777 /var/log/sqlalchemy

 

二,代码:

import logging
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from logging.handlers import RotatingFileHandler

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///yourdatabase.db'  # 例如使用 SQLite
app.config['SQLALCHEMY_ECHO'] = True  # 开启 echo 模式,虽然这不是必须的,因为我们将通过日志捕获所有 SQL 语句
db = SQLAlchemy(app)

# 配置日志记录器
logger = logging.getLogger('sqlalchemy.engine')  # 获取 SQLAlchemy 的 logger
logger.setLevel(logging.INFO)  # 设置日志级别为 INFO,因为我们只想捕获 INFO 级别的消息,通常是 SQL 语句
handler = RotatingFileHandler('/var/log/sqlalchemy/sqlalchemy.log', maxBytes=1024*1024, backupCount=5)  # 日志文件大小和备份数量
handler.setLevel(logging.INFO)  # 设置处理器级别为 INFO,确保只处理 INFO 级别的消息
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')  # 设置日志格式
handler.setFormatter(formatter)  # 设置处理器格式化器
logger.addHandler(handler)  # 将处理器添加到 logger 中

 

posted @ 2026-03-27 16:33  刘宏缔的架构森林  阅读(2)  评论(0)    收藏  举报