2016-03-09 36 views
14

我們正在運行Django服務器並使用Sentry捕獲異常。當我們配置哨兵我們添加RAVEN_CONFIG我們不同settings.py文件:如何在開發環境中配置Sentry raven客戶端以不發送異常並仍然有效?

INSTALLED_APPS = (
    'raven.contrib.django.raven_compat' 
) 

RAVEN_CONFIG = { 
    'dsn': 'https://*****@app.getsentry.com/PORT_NUMBER', 
} 

我們讀到here,我們可以只使用一個空字符串DSN財產。當我們運行python manage.py raven test所描繪here雖然我們得到:

raven.exceptions.InvalidDsn: Unsupported Sentry DSN scheme: () 

最好的解決辦法是,我們總是可以使用一個烏鴉的客戶端和設置文件將定義例外是否發送與否。

另一個要求是我們想使用Client模塊並捕獲異常。對於這個we have to set一些DSN值:

from raven import Client 
client = Client('https://<key>:<secret>@app.getsentry.com/<project>') 

所以沒有設置DSN值是不可能

回答

7

文檔不說你來設置DSN的值,這裏只是一個例子如何來設置它。

In [1]: from raven import Client 

In [2]: client = Client() 
Raven is not configured (logging is disabled). Please see the documentation for more information. 

In [3]: client.captureMessage('hello') # it's a noop - no error, no capture. 

需要注意的是,你應該通過None(或什麼都沒有)爲DSN參數,而不是空字符串是很重要的,否則它會引發InvalidDsn: Unsupported Sentry DSN scheme

另外,如果你不喜歡在你的日誌,這些日誌Raven is not configured (logging is disabled)...,可以忽略它像這樣:

>>> import logging 
>>> logging.getLogger('raven').setLevel(logging.WARNING) 
11

我們讀到這裏,我們可以只使用一個空字符串DSN屬性。

你不應該設置DSN爲空字符串,而是在你的開發設置配置不指定DSN擺在首位設置

RAVEN_CONFIG = {} 
+0

Editted問題解釋爲什麼這是不可能的。 TL; DR - 我們希望使用python raven客戶端模塊,它需要初始化DSN –

相關問題