【问题标题】:Does Python 2.7 write errors to a log file by default?Python 2.7 是否默认将错误写入日志文件?
【发布时间】:2014-12-04 01:02:05
【问题描述】:

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

【问题讨论】:

    标签: python-2.7 openshift tail error-logging


    【解决方案1】:

    没有。您在云服务(无论是来自 Apache 还是其他工具)上的日志记录是您的服务器环境的配置。如果您已移至不自动支持该功能的本地环境,您将不会拥有它。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 2019-04-21
      • 1970-01-01
      • 1970-01-01
      • 2015-12-10
      • 2015-07-02
      • 1970-01-01
      相关资源
      最近更新 更多