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 中
浙公网安备 33010602011771号