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

相关推荐
ai小鬼头1 小时前
Ollama+OpenWeb最新版0.42+0.3.35一键安装教程,轻松搞定AI模型部署
后端·架构·github
萧曵 丶2 小时前
Rust 所有权系统:深入浅出指南
开发语言·后端·rust
老任与码2 小时前
Spring AI Alibaba(1)——基本使用
java·人工智能·后端·springaialibaba
蹦蹦跳跳真可爱5892 小时前
Python----OpenCV(图像増强——高通滤波(索贝尔算子、沙尔算子、拉普拉斯算子),图像浮雕与特效处理)
人工智能·python·opencv·计算机视觉
nananaij2 小时前
【Python进阶篇 面向对象程序设计(3) 继承】
开发语言·python·神经网络·pycharm
雷羿 LexChien2 小时前
从 Prompt 管理到人格稳定:探索 Cursor AI 编辑器如何赋能 Prompt 工程与人格风格设计(上)
人工智能·python·llm·编辑器·prompt
华子w9089258593 小时前
基于 SpringBoot+VueJS 的农产品研究报告管理系统设计与实现
vue.js·spring boot·后端
星辰离彬3 小时前
Java 与 MySQL 性能优化:Java应用中MySQL慢SQL诊断与优化实战
java·后端·sql·mysql·性能优化
敲键盘的小夜猫3 小时前
LLM复杂记忆存储-多会话隔离案例实战
人工智能·python·langchain
高压锅_12204 小时前
Django Channels WebSocket实时通信实战:从聊天功能到消息推送
python·websocket·django