概述
在我们当前的设置下,我们使用简单的日志配置:
import logging logging.basicConfig(format='long detailed format',level=logging.DEBUG)
然后将输出重定向到日志文件;这会产生一个很好的,详细的日志,我们可以在需要时查看.
我们现在想要添加Raven的错误日志记录,将其绑定到我们当前的日志记录设置中,以便logging.error调用也会导致将消息发送到Sentry服务器.使用以下代码:
from raven import Client from raven.conf import setup_logging from raven.handlers.logging import SentryHandler raven = Client(environ.get('SENTRYURL',''),site='SITE') setup_logging(SentryHandler(raven,level=logging.ERROR))
错误正在成功发送到Sentry,但我现在只获得一行文件输出:
DEBUG: Configuring Raven for host: <DSN url>
所有其他文件输出 – 从logging.debug到logging.error – 正在被抑制.
如果我评论setup_logging行,我得到文件输出但没有Sentry错误.我究竟做错了什么?
logging.root.removeHandler(logging.root.handlers[0]) # Undo prevIoUs basicConfig logging.basicConfig(format='same long format',level=logging.DEBUG)
但是,由于如果logging.root具有现有处理程序,logging.basicConfig不执行任何操作,这只是删除了流处理程序,离开了sentry处理程序,并导致basicConfig然后充当no-op,这意味着我们完全丢失了StreamHandler.
删除这些行并只有一个basicConfig和setup_logging调用工作.
总结
以上是编程之家为你收集整理的python – Raven的SentryHandler将StreamHandler输出抑制为文件全部内容,希望文章能够帮你解决python – Raven的SentryHandler将StreamHandler输出抑制为文件所遇到的程序开发问题。
如果您也喜欢它,动动您的小指点个赞吧