如何在Django中使用日志记录回溯信息?
try:
print blah
except KeyError:
traceback.print_exc()
我以前调试代码的时候,都是用打印的方式,把信息输出到控制台。现在我想用记录日志的方式来替代打印,因为Apache不允许直接打印信息。那么,我该怎么把整个错误追踪记录下来呢?
2 个回答
8
如果你正在使用Django的最新版本(或者等1.3发布的时候),里面有很多默认的日志设置,这些设置和Python的标准日志模块是结合在一起的。你只需要做的就是 import logging
,然后调用 logger = logging.getLogger(__name__)
,接着用 logger.exception(msg)
来记录信息,这样你就能同时看到你的消息和错误的详细信息。你可以参考一下 Django的日志功能文档 和 Python的logger.exception方法文档。
如果你不想用Python的日志模块,你也可以 import sys
,然后写入 sys.stderr
,而不是用print。这样在命令行上会显示在屏幕上,而在Apache下运行时,它会记录到你的错误日志里。
58
你可以使用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一起使用。