【发布时间】:2011-06-17 21:46:34
【问题描述】:
try:
print blah
except KeyError:
traceback.print_exc()
我以前是这样调试的。我会打印到控制台。现在,我想记录所有内容而不是打印,因为 Apache 不允许打印。那么,如何记录整个回溯?
【问题讨论】:
标签: python django logging traceback
try:
print blah
except KeyError:
traceback.print_exc()
我以前是这样调试的。我会打印到控制台。现在,我想记录所有内容而不是打印,因为 Apache 不允许打印。那么,如何记录整个回溯?
【问题讨论】:
标签: python django logging traceback
你可以使用python的日志机制:
import logging
...
logger = logging.getLogger("blabla")
...
try:
print blah # You can use logger.debug("blah") instead of print
except KeyError:
logger.exception("An error occurred")
这将打印堆栈跟踪并将与 apache 一起使用。
【讨论】:
如果您正在运行 Django 的主干版本(或发布时的 1.3),则内置了许多默认日志配置,这些配置与 Python 的标准日志模块集成。为此,您需要做的就是import logging,调用logger = logging.getLogger(__name__),然后调用logger.exception(msg),您将获得消息和堆栈跟踪。 Django's logging functionality 和 Python's logger.exception method 的文档将是方便的参考。
如果你不想使用 Python 的日志记录模块,你也可以import sys 和写到sys.stderr 而不是使用打印。在命令行上它会进入屏幕,当在 Apache 下运行时,它会进入你的错误日志。
【讨论】: