gpt4 book ai didi

python-3.x - Python Flask 错误日志无法与 HTTP 处理程序一起使用

转载 作者:行者123 更新时间:2023-12-03 06:53:02 26 4
gpt4 key购买 nike

所以我尝试了几种不同的方法。我正在尝试使用 Flask app.logger 来保存带有 MYSQL 数据库的消息,而不使用 SQLalchdb 处理程序(我不使用 SQLalch 做任何事情)

无论如何....当我将 app.logger 与文件处理程序一起使用时,一切正常

当我在 Flask 之外使用 http 处理程序,并编程 Flask 路由来捕获错误时,它也可以工作

但是当我使用 app.logger 并向其中添加 http 处理程序时,它不起作用。看看我的代码并告诉我你的想法

http_handler = logging.handlers.HTTPHandler(
'localhost:5000',
'/logs',
method='POST',
)
app.logger.setLevel(logging.DEBUG)
app.logger.addHandler(http_handler)

这是 flask 路线:

@app.route('/logs' , methods = ["GET","POST"])
def logs():
print('caught it')
print(request.form)
return ""

这是我用来强制和错误的路线:

@app.route('/home', methods=['POST'])
def index():
[some code]
ender_template("index.html")

如前所述,如果我使用上面相同的 HTTP 处理程序设置一个新的记录器(不是 Flask app.logger),那么我假设 Flask 路由设置正确。同样如前所述,Flask app.logger 将与文件处理程序一起使用

非常感谢任何帮助

编辑::最近被要求描述以下代码如何响应,我认为这对于每个试图提供帮助的人来说都是很好的信息。

当我强制 flask 出现错误时(将“render_template”更改为“ender_template”我在 python shell 中看到错误,但它没有传递到路由。另外,在我强制错误之后, flask 不再允许我在重新启动之前获取/发布任何内容。我没有收到任何日志记录功能的异常或错误

最佳答案

这按预期工作:

from logging.handlers import HTTPHandler

http_handler = HTTPHandler('localhost:5000',
'/logs',
method='POST')

from flask import Flask, request
app = Flask(__name__)

@app.route('/logs', methods=['POST'])
def logs():
import pdb;pdb.set_trace()

app.logger.addHandler(http_handler)
app.run(debug=True)

从另一个终端:

curl --form hello=world localhost:5000/logs

/logs端点内部:

(pdb) print(request.form)
ImmutableMultiDict([('hello', u'world')])

关于python-3.x - Python Flask 错误日志无法与 HTTP 处理程序一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48434083/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com