【问题标题】:Writing to the Apache error.log file from Mod_Wsgi从 Mod_Wsgi 写入 Apache error.log 文件
【发布时间】:2011-06-23 05:22:57
【问题描述】:

我在设置 wsgi 文件时遇到问题,所以我想将消息输出到日志文件。我找到了这个页面http://code.google.com/p/modwsgi/wiki/DebuggingTechniques,但是当我尝试使用代码时:

print >> sys.stderr, "application debug #3"

在我的 project.wsgi 文件中,消息不会在 apache 重新启动时推送到 error.log。网站服务正常。我需要做什么才能使日志记录正常工作?

附:我在 Ubuntu 10.10 上为 Django 站点提供服务。

【问题讨论】:

  • “与之前每次 apache 重启时相同的消息”?
  • 我的意思是,当我重新启动 apache 时,我的“应用程序调试 #3”没有进入 error.log。
  • 代码中的那一行在哪里?为什么您希望在重新启动 Apache/mod_wsgi 时执行特定代码?
  • 那行在我的 .wsgi 文件中。当我重新启动 apache 时,该文件中的所有内容似乎都已执行。也许我错了?
  • WSGI 脚本文件通常仅在针对特定应用程序的第一个请求到达时才加载,而不是在进程启动时自动加载,即在 Apache 重新启动时不会自动加载。如果 mod_wsgi 配置正确,您可以强制它在进程启动时加载,但不是默认设置。 WSGI 脚本文件中的任何内容都不会在进程关闭时执行。为此,您需要注册一个 atexit 回调。请参阅“code.google.com/p/modwsgi/wiki/…”。

标签: django ubuntu apache2 mod-wsgi error-logging


【解决方案1】:

WSGI 脚本文件通常只在特定应用程序的第一个请求到达时才加载,而不是在进程启动时自动加载,即在 Apache 重新启动时不会自动加载。如果 mod_wsgi 配置正确,您可以强制它在进程启动时加载,但不是默认设置。 WSGI 脚本文件中的任何内容都不会在进程关闭时执行。为此,您需要注册一个 atexit 回调。见'code.google.com/p/modwsgi/wiki/…;。 ——格雷厄姆·邓普顿

格雷厄姆·邓普顿是个天才!

【讨论】:

    猜你喜欢
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 2016-01-25
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    • 1970-01-01
    相关资源
    最近更新 更多