【问题标题】:How do you trace 500 server errors with Apache + mod_python + Django? [duplicate]您如何使用 Apache + mod_python + Django 跟踪 500 个服务器错误? [复制]
【发布时间】:2011-01-03 10:08:54
【问题描述】:

可能重复:
Django Unhandled Exception

我随机收到 500 个服务器错误并尝试诊断问题。设置是:

Apache + mod_python + Django

我的 500.html 页面由 Django 提供,但我不知道是什么导致了错误。我的 Apache access.log 和 error.log 文件不包含任何有价值的调试信息,除了显示请求返回 500。

某处(Ubuntu 服务器)是否有 mod_python 或一般 python 错误日志?

谢谢!

【问题讨论】:

    标签: django apache mod-python


    【解决方案1】:

    Salsa 提出了几个很好的建议。我要补充一点,Django 开发服务器是跟踪这些事情的绝佳环境。有时我什至使用./manage.py runserver 0.0.0.0:8000 从生产目录(喘气!)运行它,所以我知道我正在运行相同的代码。

    诚然,有时某些事情会在 Apache 下失败,而不是在开发服务器下,但这本身就是一个提示。

    【讨论】:

      【解决方案2】:

      是的,您的 apache 配置文件中应该有一个条目,说明虚拟服务器的错误日志在哪里。 例如,我的虚拟服务器的名称是 djangoserver,在我的 /etc/apache2/sites-enabled/djangoserver 文件中是一行

      ErrorLog /var/log/apache2/djangoserver-errors.log
      

      虽然现在我重新阅读了您的问题,但您似乎已经处理了 apache 日志。我不相信 mod_python 或 python 本身有任何单独的日志。

      这是一个生产设置吗?

      如果没有,您可能希望打开Debug mode,然后 Django 会生成带有错误信息的非常详细的屏幕。在你项目的 settings.py 中,设置

      DEBUG = True
      TEMPLATE_DEBUG = DEBUG
      

      禁用通用 500 错误屏幕并查看详细分类。

      【讨论】:

      • 感谢您的回复。我已经阅读了 Apache 错误日志,但信息不是很有价值。是的,这是一个生产环境,所以我不想打开 DEBUG。困难的部分是我没有看到错误,但客户随机看到了。所以我试图追溯诊断。我的梦想是在某处的错误日志中看到 Python 堆栈跟踪。
      • 我知道你的意思,我已经为 PHP 记录了所有的错误,但我不知道如何使用 Django。实际上,我也需要知道。 diegueus9 的回应带来了一些很好的信息。
      猜你喜欢
      • 1970-01-01
      • 2015-02-12
      • 1970-01-01
      • 2012-08-17
      • 1970-01-01
      • 1970-01-01
      • 2020-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多