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

相关推荐
Cache技术分享7 分钟前
517. Java 方法句柄 - 方法句柄 vs 反射 API
前端·后端
轩情吖38 分钟前
Python基础知识点完整总结
python·字符串·编程语言·函数·列表·元组·字典
BS30813_vx1 小时前
基于 Express + uni-app 的养老院管理系统设计与实现
后端·uni-app·express
青 春 记 忆1 小时前
零基础入门python69:为 FastAPI 项目构建可复现 Docker 镜像
python·fastapi·后端开发
<花开花落>1 小时前
Python 项目迁移到 uv:经验小结与可复用工作流
python·uv
databook1 小时前
正态分布撒谎时:用柯西分布捕捉生活中的“黑天鹅”
python·数据挖掘·数据分析
明月_清风1 小时前
DeepSeek Harness 安全审计实录:四个 PoC 揭露的 Agent 运行时"信任危机"
后端·安全·agent
Java后端的Ai之路1 小时前
LangChain Deep Agents 从入门到企业实战
开发语言·人工智能·python·langchain·deepagents
2601_962381581 小时前
Mac和Windows,哪种电脑适合新手学Python|数智码力分享
windows·python·mac·编程环境·学习入门
会飞的拖把1 小时前
Python文件操作详解:从文件读写到os、shutil模块实战
开发语言·python