flask日志

您可以使用 Python 自带的 logging 模块来实现 Flask 日志记录功能。以下是一个简单的示例:

python 复制代码
import os
import logging
from logging.handlers import TimedRotatingFileHandler
from flask import Flask, request

app = Flask(__name__)

# 创建日志目录
if not os.path.exists('logs'):
    os.mkdir('logs')

# 配置日志记录器
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

# 创建日志文件处理器,每天生成一个新的日志文件
log_handler = TimedRotatingFileHandler(
    'logs/myapp.log',
    when='D',
    interval=1,
    backupCount=7,
    encoding='utf-8'
)

# 配置日志文件处理器
formatter = logging.Formatter('%(asctime)s %(levelname)s: %(message)s')
log_handler.setFormatter(formatter)
logger.addHandler(log_handler)

@app.before_request
def log_request_info():
    # 记录请求前的所有参数
    logger.info('Request: %s %s %s %s %s %s %s %s',
                request.remote_addr,
                request.method,
                request.scheme,
                request.full_path,
                request.headers,
                request.args,
                request.form,
                request.json)

@app.after_request
def log_response_info(response):
    # 记录返会的所有参数
    logger.info('Response: %s %s %s %s', 
                response.status, 
                response.headers,
                response.get_data(),
                response.get_json())
    
    return response

上述示例中,我们首先创建了一个名为 myapp.log 的日志文件,并将日志级别设置为 INFO。然后,我们创建了一个 before_request 钩子函数来记录请求前的所有参数,以及一个 after_request 钩子函数来记录返会的所有参数。最后将日志文件处理器添加到日志记录器中即可。

请注意,在日志处理程序中,我们使用了 TimedRotatingFileHandler 类,该类可以按时间轮换日志文件。在上面的示例中,我们将日志文件的生成间隔设置为 1 天,上限为 7 个日志文件。这意味着每天将生成一个新的日志文件,并自动删除最老的日志文件。

相关推荐
测试199820 分钟前
接口自动化测试套件封装示例详解
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
expect7g35 分钟前
Paimon源码解读 -- Compaction-2.KeyValueFileWriterFactory
大数据·后端·flink
小灰灰搞电子40 分钟前
Rust 动态分发(dyn Trait)详解
开发语言·后端·rust
码事漫谈41 分钟前
深入剖析进程、线程与虚拟内存
后端
码事漫谈1 小时前
MFC核心架构深度解析
后端
geekmice1 小时前
实现一个功能:springboot项目启动将controller地址拼接打印到txt文件
java·spring boot·后端
小周在成长1 小时前
Java 线程安全问题
后端
bcbnb1 小时前
iOS应用完整上架App Store步骤与注意事项详解
后端
掘金考拉1 小时前
从原理到实战:JWT认证深度剖析与架构思考(一)——三部分结构的精妙设计
后端