哨兵 - 如何仅记录异常,而不是记录器

问题描述:

我想使用哨兵来记录测试异常。所以我配置的:哨兵 - 如何仅记录异常,而不是记录器

# tests/__init__.py 

from raven import Client 
from raven.conf import setup_logging 
from raven.handlers.logging import SentryHandler 

client = Client(dsn='here goes dsn') 
handler = SentryHandler(client, level=logging.ERROR) 
setup_logging(handler) 

当我运行我的测试:

# tests/test_lolz.py 

logger = logging.getLogger(__name__) 

def test_log(): 
    logger.warning('do not want to see this - warn') 
    logger.error('do not want to see this - error') 
    1/0 # yolo 

我看到无论是在放哨仪表板:出现错误记录和异常

随着日志记录级别至关重要一无所有。

那么,有没有一种方法只记录异常,但不是常规日志?

Sentry目前不提供一种方式来说“只捕获有附加异常的日志事件”,但您可以为它写一个logging.Filter。 Python文档是有点稀疏,但这里有一个过滤器的例子:

https://docs.python.org/2/howto/logging-cookbook.html#using-filters-to-impart-contextual-information

你会基本上要检测是否异常信息是存在的条目,如果是,返回True(告诉它捕获条目)。

+0

谢谢您的回复!我通过做两件事来解决问题:1.鼻子插件记录异常,2.简单的过滤器,就像你说的。此解决方案正常工作。谢谢! – voy