【发布时间】:2018-07-04 04:23:51
【问题描述】:
所以我尝试了几种不同的方法。 我正在尝试使用烧瓶 app.logger 在不使用 SQLalchdb 处理程序的情况下使用 MYSQL 数据库保存消息(我不使用 SQLalch 做任何事情)
无论如何.... 当我将 app.logger 与文件处理程序一起使用时,一切正常
当我在烧瓶之外使用我的 http 处理程序,并且对烧瓶路由进行编程以捕获错误时,它也可以工作
但是当我使用 app.logger 并向其中添加 http 处理程序时,它不起作用。 看看我的代码,告诉我你的想法
http_handler = logging.handlers.HTTPHandler(
'localhost:5000',
'/logs',
method='POST',
)
app.logger.setLevel(logging.DEBUG)
app.logger.addHandler(http_handler)
这是烧瓶路线:
@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 处理程序设置一个新的记录器(不是烧瓶 app.logger),它可以工作,所以我假设烧瓶路由设置正确。 同样如前所述,flask app.logger 将与文件处理程序一起使用
非常感谢任何帮助
编辑:: 最近被要求描述以下代码如何响应,认为这对每个试图提供帮助的人来说都是很好的信息。
当我强制烧瓶出错时(将“render_template”更改为“ender_template” 我在 python shell 中看到了错误,但它没有传递给路由。 此外,在我强制错误烧瓶后,我不再允许我获取/发布任何内容,直到它重新启动。 我没有收到日志记录功能的任何异常或错误
【问题讨论】:
-
如果从
/logs路由的方法列表中删除“GET”会怎样?还是在处理程序中指定 method='GET'? -
我尝试从方法列表中删除 GET 并更改处理程序中的方法。没用。不过谢谢!
-
仍在寻求有关此问题的帮助
标签: python-3.x logging flask error-handling