7

我设法成功安装哨兵,我可以在本地主机上看到哨兵接口 web 服务并执行

raven test http://jsifslkdjfklsdfjklsdjfklMYCODE 

工作,测试显示在界面中。

问题是我找不到任何示例或文档来说明我应该在我的视图和设置中添加什么。

我知道我必须添加到我的INSTALLED_APPS

'哨兵','raven.contrib.django',

我还添加了

SENTRY_DNS = 'http://jsifslkdjfklsdfjklsdjfklMYCODE'

接下来的两行出现在文档中,但没有说明它们去哪里

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 回答