【发布时间】:2012-10-21 23:41:30
【问题描述】:
我在 Google App Engine 上使用 Django-nonrel,这迫使我使用 logging.debug() 而不是 print()。
“日志”模块由 Django 提供,但我使用它而不是 print() 时遇到了麻烦。
例如,如果我需要验证变量 x 中保存的内容,我将输入logging.debug('x is: %s' % x)。但是如果程序很快就崩溃了(没有刷新流),那么它就永远不会被打印出来。
所以为了调试,我需要在程序出错退出之前刷新 debug(),而这不会发生。
【问题讨论】:
-
不是你的问题的答案,但你为什么还要使用
print?! -
“刷新”日志到底是什么意思?
-
希望列举的例子有助于理解。
-
我会尝试类似AdminEmailHandler 记录处理程序的特定情况,例如您的示例。数据库日志记录处理程序将是更好的选择,不确定是否有免费的Sentry 替代方案。
-
可能不是正确的,但这对我有用。希望这对某人有所帮助。我尝试使用 flush() 方法,但没有奏效。当我使用 sys.exit(..) 退出我的应用程序时,我在它周围创建了一个包装器方法(
exit())...在退出应用程序之前等待1秒(time.sleep(1))。我还发现任何意外错误并调用exit()方法。此超时似乎会清除所有待处理的日志消息
标签: python django google-app-engine logging django-nonrel