2015-11-03 2 views
2

Я хочу использовать часовое устройство для регистрации исключений. Поэтому я настроил его:Sentry - как регистрировать только исключения, а не регистратор

# 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 

Я вижу, как в сторожевой приборной панели: ошибка появляется регистратор и исключение

С уровнем протоколирования критического ничего.

Итак, существует ли способ регистрации только исключений, но не регулярных журналов?

ответ

2

Sentry в настоящее время не предоставляет способ сказать «регистрировать только события регистрации, которые имеют исключение», но вы можете написать для него logging.Filter. Документы Python немного разреженные, но вот пример фильтра:

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

Вы бы в основном хотите, чтобы обнаружить, если информация исключения присутствует на входе, и если она есть, вернуть True (говоря ему, чтобы захватить запись).

+0

Благодарим вас за ответ! Я решил проблему, выполнив две вещи: 1. плагин носа для регистрации исключений, 2. простой фильтр, так же, как вы сказали. Это решение работает нормально. Благодаря! – voy

Смежные вопросы