2015-11-03 137 views
2

我想使用哨兵來記錄測試異常。所以我配置的:哨兵 - 如何僅記錄異常,而不是記錄器

# 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