您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – Raven的SentryHandler将StreamHandler输出抑制为文件

5b51 2022/1/14 8:20:30 python 字数 3810 阅读 456 来源 www.jb51.cc/python

我有一个普通的 python(非Django)项目,我正在尝试 tie Raven into the logging setup. 在我们当前的设置下,我们使用简单的日志配置: import logging logging.basicConfig(format='long detailed format', level=logging.DEBUG) 然后将输

概述

在我们当前的设置下,我们使用简单的日志配置:

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输出抑制为文件所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶