【发布时间】:2012-12-18 13:37:39
【问题描述】:
有时我需要检查 python 网络应用程序的输出。
如果我直接执行应用程序,我可以从终端屏幕上看到它。
但我不知道如何检查 mod_wsgi。它会出现在apache 的单独日志中吗?还是我需要为logging添加一些代码?
【问题讨论】:
标签: python django apache mod-wsgi pyramid
有时我需要检查 python 网络应用程序的输出。
如果我直接执行应用程序,我可以从终端屏幕上看到它。
但我不知道如何检查 mod_wsgi。它会出现在apache 的单独日志中吗?还是我需要为logging添加一些代码?
【问题讨论】:
标签: python django apache mod-wsgi pyramid
声称可移植的 WSGI 应用程序组件不应写入标准输出。也就是说,如果没有将输出定向到某个备用流,应用程序不应使用 Python 打印语句。应用程序也不应该直接写入 sys.stdout。 (ModWSGI Wiki)
所以不要...相反,我建议使用像sentry 这样的日志聚合工具。它在开发时很有用,并且是生产中的必备品。
【讨论】:
wsgilog 很简单,可以自动为您将标准输出重定向到日志文件。轻松设置,我没有遇到任何实际问题。
【讨论】:
你可以用sys.stderr.write("message")代替print "message"
使用StreamHandler 登录到标准错误:
import logging
handler = logging.StreamHandler(stream=sys.stderr)
log = logging.getLogger(__name__)
log.setLevel(logging.INFO)
log.addHandler(handler)
log.info("Message")
【讨论】: