当前位置:  开发笔记 > 后端 > 正文

用乌鸦和哨兵登录Django

如何解决《用乌鸦和哨兵登录Django》经验,为你挑选了1个好方法。

我可能在火车上有点迟了,但我想用Sentry和Raven登录Django.

我设立了哨兵和乌鸦,在那里我为乌鸦进行了测试并且它有效.

所以现在我想将调试信息发送到哨兵,但我该怎么做呢?

settings.py

RAVEN_CONFIG = {
    'dsn': 'http://code4@mydomain:9000/2',
    # If you are using git, you can also automatically configure the
    # release based on the git info.
    'release': raven.fetch_git_sha(BASE_DIR),
}

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

view.py

import logger
from raven.contrib.django.models import get_client


client = get_client()
client.captureException()

logger = logging.getLogger(__name__)



def my_view(request):

   [...]
    logger.error('There was some crazy error', exc_info=True, extra={
    # Optionally pass a request and we'll grab any information we can
    'request': request,
    })
    [...]

此时它只记录错误和异常,但不会向我发送此错误消息...

如何正确使用乌鸦和哨兵?文档完全没有帮助,我的谷歌foo也离开了我.任何提示或有用的教程?



1> Alex Morozov..:

你有3个记录器定义:django,ravensentry.errors.当你打电话时,logging.getLogger(__name__)你实际上会创建一个"扔掉"的,因为你___name__的上述任何一个都不匹配.

你应该使用raven记录器......

logger = logging.getLogger('raven')
logger.debug('Hola!')

...或自己设置:

LOGGING = {
    # ...
    'loggers': {
        # ...
        'yourapp': {
            'level': 'debug',
            'handlers': ['sentry'],
            'propagate': False,
        },
    }
}

然后在yourapp/views.py:

logger = logging.getLogger(__name__)
logger.debug('Hola!')

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有