哨兵 - 如何仅记录异常,而不是记录器
问题描述:
我想使用哨兵来记录测试异常。所以我配置的:哨兵 - 如何仅记录异常,而不是记录器
# 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(告诉它捕获条目)。
谢谢您的回复!我通过做两件事来解决问题:1.鼻子插件记录异常,2.简单的过滤器,就像你说的。此解决方案正常工作。谢谢! – voy