在 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 肉桂
- Python 2.7.6
更新
稍微更新一下这个场景,我没有注意到我正在使用 mod_wsgi
,我现在相信它会将 Python 错误传递到 Apache 日志:
https://code.google.com/p/modwsgi/wiki/DebuggingTechniques
要获取更详细的错误消息,如上述文档所述,您可以将 /etc/apache2/apache2.conf
中的 LogLevel
设置调整为:
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
最佳答案
没有。您对云服务的登录(无论是来自 Apache 还是其他工具)是您的服务器环境的配置。如果您已转移到不自动支持该功能的本地环境,则您将无法获得它。
Python 确实有一个日志记录模块(相当完整且相当复杂),但它是程序记录到文件(或其他目的地)的基础设施。它不会自动将所有 Python 错误汇集到指定的日志文件中。一般来说,Python 错误消息 (sys.stderr
) 会出现在运行程序的控制台上(或者在调试控制台上,如果您来自 IDE)。
关于python-2.7 - Python 2.7 默认情况下是否将错误写入日志文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27284529/