2012-05-30 9 views
7

に歩哨/ワタリガラスを使用すると、私はローカルホストで歩哨インターフェイスのWebサービスを見ることができますし、はどのようにDjangoのビュー

raven test http://jsifslkdjfklsdfjklsdjfklMYCODE 

作品をやって。

問題は、ビューと設定に正確に何を置くべきかに関するサンプルやドキュメントが見つかりません。

私は、私は私のINSTALLED_APPS

'見張り'、 'raven.contrib.django' に追加する必要があります知っている

、私はまた、この次の2行が表示され

SENTRY_DNS = 'http://jsifslkdjfklsdfjklsdjfklMYCODE' 

を追加しましたどこに行くのかはわかりません

from raven.contrib.django.models import client 
client.captureException() 

I tri settings.pyで編集しましたが、私は何かを記録するために私の意見を得ることができません。 私も、私はこの追加

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': True, 
    'root': { 
     'level': 'WARNING', 
     'handlers': ['sentry'], 
    }, 
    'formatters': { 
     'verbose': { 
      'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s' 
     }, 
    }, 
    'handlers': { 
     'sentry': { 
      'level': 'ERROR', 
      'class': 'raven.contrib.django.handlers.SentryHandler', 
     }, 
     'console': { 
      'level': 'DEBUG', 
      'class': 'logging.StreamHandler', 
      'formatter': 'verbose' 
     } 
    }, 
    'loggers': { 
     'django.db.backends': { 
      'level': 'ERROR', 
      'handlers': ['console'], 
      'propagate': False, 
     }, 
     'raven': { 
      'level': 'DEBUG', 
      'handlers': ['console'], 
      'propagate': False, 
     }, 
     'sentry.errors': { 
      'level': 'DEBUG', 
      'handlers': ['console'], 
      'propagate': False, 
     }, 
    }, 
} 

そして、私の見解では、これを追加しました:私はあなたがここで見るものから離れてログインに関連した他のコードを持っていない

import logging 
logger = logging.getLogger() 

def home(request,template_name): 
    logger.error('There was some crazy error lol', exc_info=True, extra={'request': request, }) 
    return render_to_response(template_name,context, context_instance=RequestContext(request)) 

を、私は何をしないのですか?

答えて

1

私は私のsettings.pyにこのmonstruosityを使用する必要がありました:

import logging 
# from raven.contrib.django.handlers import SentryHandler 
from raven.handlers.logging import SentryHandler 

logging.getLogger().setLevel(logging.INFO) 
logger = logging.getLogger()# ensure we havent already registered the handler 
handler = SentryHandler('http://13d06dad246d4fe6a180ef9b15151a13:[email protected]/1') 
logger.addHandler(handler) 
# Add StreamHandler to sentry's default so you can catch missed exceptions 
logger = logging.getLogger('sentry.errors') 
logger.propagate = False 
logger.addHandler(logging.StreamHandler()) 


from raven.conf import setup_logging 
setup_logging(handler) 

そして、私の意見では、私は多くの設定をしようとしたシンプルな

import logging 
logger = logging.getLogger(__name__) 
def home(request,context={},template_name=None): 
    logger.info(str(request), exc_info=True) 
    return render_to_response(template_name,context, context_instance=RequestContext(request)) 

を使用することができます。

7

あなたの 'raven'ロガーは実際にはセントリリーハンドラーを使用せず、 'console'にのみ書き込みます。同じ問題があった。レーヴン/セドリーのドキュメンテーションには良いライターがいません。

'raven': { 
      'level': 'DEBUG', 
      'handlers': ['console', 'sentry'], 
      'propagate': False, 
     }, 

、あなたはロガーとしてそれを使用してください::へのあなたのワタリガラスのロガーが

変更

logger = logging.getLogger('raven') 
+7

「レイヴン」ロガーはカラスのパッケージを参照し、私はそれがだと推定したいですレイヴンの内部エラーがレイヴに返されないようにして、無限ループを引き起こします。独自のlogger 'myapp'を作成する必要があります。これはsettings.py LOGGINGに独自のエントリがあります。 – joerick

関連する問題