Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 乌鸦';s SentryHandler正在禁止StreamHandler输出到文件_Python_Logging_Sentry_Raven - Fatal编程技术网

Python 乌鸦';s SentryHandler正在禁止StreamHandler输出到文件

Python 乌鸦';s SentryHandler正在禁止StreamHandler输出到文件,python,logging,sentry,raven,Python,Logging,Sentry,Raven,我有一个简单的python(非Django)项目,我正在尝试 在当前设置下,我们使用一个简单的日志配置: import logging logging.basicConfig(format='long detailed format', level=logging.DEBUG) 然后将输出重定向到日志文件;这将生成一个很好的详细日志,我们可以在需要时查看它 我们现在想添加Raven的错误日志记录,将其绑定到当前的日志记录设置中,以便日志记录.error调

我有一个简单的python(非Django)项目,我正在尝试

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

import logging
logging.basicConfig(format='long detailed format',
                    level=logging.DEBUG)
然后将输出重定向到日志文件;这将生成一个很好的详细日志,我们可以在需要时查看它

我们现在想添加Raven的错误日志记录,将其绑定到当前的日志记录设置中,以便
日志记录.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>
调试:为主机配置Raven: 所有其他文件输出——从
logging.debug
logging.error
——都被抑制


如果我对
setup\u logging
行进行注释,我会得到文件输出,但没有哨兵错误。我做错了什么?

这是一个草率的代码。我们在启动执行路径的其他地方遇到了一些黑客攻击,重新初始化了日志记录:

logging.root.removeHandler(logging.root.handlers[0]) # Undo previous basicConfig
logging.basicConfig(format='same long format',
                    level=logging.DEBUG)
但是,由于
logging.basicConfig
如果
logging.root
有现有的处理程序,则不会执行任何操作,这只是删除了流处理程序,留下了sentry处理程序,并导致
basicConfig
随后充当no op,这意味着我们完全失去了StreamHandler

删除这些行,并且只有一个
basicConfig
和一个
setup\u logging
调用有效