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 个日志文件。这意味着每天将生成一个新的日志文件,并自动删除最老的日志文件。

相关推荐
IT小盘5 小时前
03-大模型API不只是发送Prompt-流式输出超时重试与异常处理
人工智能·python·prompt
Zzz不能停6 小时前
个人博客系统系统---测试报告【笔耕云】
python·功能测试·自动化·压力测试
小Ti客栈7 小时前
Spring Boot 集成 Springdoc-OpenAPI 与 Knife4j实现接口文档与可视化调试
java·spring boot·后端
互联网中的一颗神经元7 小时前
小白python入门 - 39. 采集流水线小项目
开发语言·python
Ai拆代码的曹操7 小时前
Spring 事务 REQUIRES_NEW 嵌套调用:连接池翻倍的秘密
java·后端·spring
郭老二8 小时前
【Python】常用模块:xmlrpc
python
名字还没想好☜8 小时前
Python itertools 实战:用 groupby、chain、islice 优雅处理大数据流
linux·windows·python·迭代器·itertools
威联通网络存储9 小时前
TS-h2490FU在面板制造Array段AOI缺陷画廊中的并联
python·制造
IT_陈寒9 小时前
SpringBoot这个分页坑,我踩了三天才爬出来
前端·人工智能·后端
颜酱9 小时前
05 | 召回前置准备:根据业务数据库生成各数据库(读取配置阶段)
前端·人工智能·后端