Python 2.7默认情况下是否将错误写入日志文件?

时间:2014-12-04 01:02:06

标签: python-2.7 openshift tail error-logging

OpenShift中,我习惯于使用以下方法查看Python引发的错误:

rhc tail -f app-root/logs/python.log [appname]

我最近创建了一个本地开发环境,希望能够访问相同的功能,即查看Python引发的任何错误。

我可以针对Apache错误执行此操作:

sudo tail -100 /var/log/apache2/error.log

我的Python应用程序中是否存在可以查看错误的类似内容?

环境

  • Linux Mint 17 Cinnamon
  • Python 2.7.6

更新

对此方案进行了轻微更新,我没有注意到我正在使用mod_wsgi我现在认为将Python错误传递给Apache日志:

https://code.google.com/p/modwsgi/wiki/DebuggingTechniques

要获得更详细的错误消息,如上述文档所述,您可以将LogLevel中的/etc/apache2/apache2.conf设置调整为:

LogLevel info

似乎正在捕捉错误,例如调用尚未定义的函数等时

因此,就我目前的理解而言,似乎在我的场景中重新创建应用程序中的日志记录功能并不是必需的。

[Thu Dec 04 13:00:44.899950 2014] [:error] [pid 6200] [client 127.0.0.1:48228] NameError: name 'undefined_function()' is not defined

1 个答案:

答案 0 :(得分:2)

没有。您登录云服务(无论是来自Apache还是其他工具)是您的服务器环境的配置。如果您已迁移到不自动支持该环境的本地环境,则您将无法使用它。

Python确实有一个logging模块(相当完整且相当复杂),但它是用于记录到文件(或其他目的地)的程序的基础结构。它不是将所有Python错误自动汇总到指定的日志文件中。通常,Python错误消息(sys.stderr)出现在您运行程序的控制台上(或者在调试控制台中,如果您来自IDE中)。