7

セントリーを正常にインストールすることができ、セントリー インターフェイスの Web サービスが localhost で実行されていることを確認できます。

raven test http://jsifslkdjfklsdfjklsdjfklMYCODE 

動作すると、テストがインターフェイスに表示されます。

問題は、ビューと設定に正確に何を配置する必要があるかについての例やドキュメントが見つからないことです。

私は自分に追加しなければならないことを知っていますINSTALLED_APPS

'歩哨', 'raven.contrib.django',

そして、私も追加しました

SENTRY_DNS = 'http://jsifslkdjfklsdfjklsdjfklMYCODE'

この次の2行はドキュメントに表示されますが、どこに行くのかはわかりません

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

試してみまし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))

ここに表示されているもの以外に、ログに関連するコードはありません。何が欠けていますか?

4

2 に答える 2

8

あなたの「レイヴン」ロガーは実際にはセントリーハンドラーを使用していませんが、「コンソール」に書き込むだけです。同じ問題がありました。raven/sentry のドキュメントには優れたライターがいません。

raven ロガーを次のように変更します。

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

必ずロガーとして使用してください:

logger = logging.getLogger('raven')
于 2012-06-21T10:10:57.277 に答える
1

私は自分のsettings.pyでこの怪物を使わなければなりませんでした:

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:eb46a6d724df4327a8cc04d9d3cfad37@sentry.bandtastic.pagekite.me/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))

いろいろ設定してみました。

于 2012-05-31T02:11:13.270 に答える