当前位置: 首页 > 面试题库 >

Flask应用程序回溯未显示在服务器日志中

谢承
2023-03-14
问题内容

我正在用uWSGI和nginx运行Flask应用程序。出现500错误,但在浏览器或日志中未显示回溯。如何记录Flask的追溯?

uwsgi --http-socket 127.0.0.1:9000 --wsgi-file /var/webapps/magicws/service.py --module service:app --uid www-data --gid www-data --logto /var/log/magicws/magicapp.log

uWSGI日志仅显示500状态代码,而不显示回溯。nginx日志中也没有任何内容。

[pid: 18343|app: 0|req: 1/1] 127.0.0.1 () {34 vars in 642 bytes} 
[Tue Sep 22 15:50:52 2015] 
GET /getinfo?color=White => generated 291 bytes in 64 msecs (HTTP/1.0 500) 
2 headers in 84 bytes (1 switches on core 0)

问题答案:

过将FLASK_ENV环境变量设置为,以开发模式运行development。未处理的错误将在终端和浏览器中显示堆栈跟踪,而不是一般的500错误页面。

export FLASK_ENV=development  # use `set` on Windows
flask run

在Flask 1.0之前,请FLASK_DEBUG=1改用。

如果你仍在使用app.run(在Flask 0.11中不再推荐),请通过debug=True

if __name__ == '__main__':
    app.run(debug=True)

在生产中,你不想在调试模式下运行你的应用程序。相反,你应该将错误记录到文件中。

Flask使用标准的Python日志记录库,可以将其配置为记录错误。插入以下内容以将Flask的日志消息发送到文件。

import logging
handler = logging.FileHandler('/path/to/app.log')  # errors logged to this file
handler.setLevel(logging.ERROR)  # only log errors and above
app.logger.addHandler(handler)  # attach the handler to the app's logger


 类似资料:
  • 问题内容: 我将react.js应用程序上传到服务器。我正在使用Nginx服务器。应用程序运行正常。但是,当我转到其他页面并刷新时,网站无法正常工作。显示404找不到错误。 我该如何解决。 谢谢。 问题答案: 当您的应用加载时,路由由前端处理。例如说您在。然后在页面上导航到。此路由更改在浏览器本身中处理。现在,当您刷新或打开新标签中的网址时,请求将转到您的特定路由不存在的地方,因此您得到404。

  • 用于存储Web服务器日志记录 服务器日志仅允许存储在Azure Blob容器上。根据配置,日志按预期存储在Blob容器上。现在,我想使用这些日志在Azure Log Analytics上显示。 在Log Analytics资源管理器上,我可以查看除Web服务器(iis日志)以外的所有其他来源的日志。我错过了什么?

  • 问题内容: 我在应用程序中使用JUL。通常,Netbeans打开一个输出选项卡,该选项卡显示“ Tomcat”并显示我生成的日志。运行正常。但是突然间,我意识到我的日志根本没有显示,只有打印出来。甚至都不是最热情的人。 我怀疑这可能是我包含的图书馆,这使我的日志混乱了。那有可能吗?图书馆可以改变我的日志显示方式吗?由于我有点迷路,我该如何调查? 问题答案: 我怀疑这可能是我包含的图书馆,这使我的日

  • 当我在Eclipse中启动我的JavaEE 6应用程序时,一切都很好(所有日志都可以)。当我现在在完全相同的服务器上使用相同的应用程序时,但是部署并启动了IntelliJ,然后以下日志 像这样 IntelliJ中文件编码的源文件、项目和常规设置均设置为UTF-8。 我正在使用OSX Mavericks。

  • 我正在设置一个新的web应用程序,通过Application Insights登录。我已经安装了AI,并且看到了所有预期的遥测(服务器请求、失败的请求等),但没有通过ILogger发送日志。我已经看过所有类似的问题,我可以找到这样,但没有解决我的问题。 我正在使用。NET 5和2.17版。Microsoft的0(最新版本)。应用程序指示灯。AspNetCore-nuget包。连接字符串和检测键显示

  • 问题内容: 我无法使LibGDX日志记录在Android Studio中工作。首先,我认为我的问题与之前的问题相同,但是请确保我的应用程序在调试时进行了更新。 选项按钮上的测试操作已执行,但我无法显示调试日志。 问题答案: 默认日志级别为。为了进行调用,您必须先调用一次(可能是Game构造函数的第一行,以便可以轻松更改它)。