繁体   English   中英

Raven / Sentry日志本身导致最大递归深度达到错误

[英]Raven/Sentry logging itself causing maximum recursion depth reached error

我使用以下日志记录配置在Django 1.4上配置了Raven 2.0.2:

'handlers': {
    ...
    'sentry': {
        'level':'INFO',
        'class': 'raven.contrib.django.handlers.SentryHandler',
    },
},

'loggers': {
    '' : {
        'level': 'INFO',
        'handlers': ['sentry'],
    },
    'django' : {
        'handlers': ['console-error', 'sentry'],
        'propagate': False,
        'level': 'DEBUG'
    },
    'django.request': {
        'handlers': [],
        'level': 'ERROR',
        'propagate': True,
    },
}

记录“django”记录器效果很好。 对于根级别记录器,如果我尝试记录ERROR级别消息,则它会通过。 但是,当我尝试记录INFO级别消息时,我收到以下错误:

Top level Sentry exception caught - failed creating log record
Configuring Raven for host: http://1e437dc0d8e347f2b655246d25aa3544:59b1969faf0b4f2e85a823fba93d058a@dev.project.com:9000:/3
Traceback (most recent call last):
  File "/home/dev/env/project/lib/python2.6/site-packages/raven/handlers/logging.py", line 59, in emit
    return self._emit(record)
  File "/home/dev/env/project/lib/python2.6/site-packages/raven/contrib/django/handlers.py", line 32, in _emit
    return super(SentryHandler, self)._emit(record, request=request)
  File "/home/dev/env/project/lib/python2.6/site-packages/raven/handlers/logging.py", line 126, in _emit
    return self.client.capture('Message', message=record.msg, params=record.args,
  File "/home/dev/env/project/lib/python2.6/site-packages/raven/contrib/django/models.py", line 49, in <lambda>
    __getattr__ = lambda x, o: getattr(get_client(), o)
  File "/home/dev/env/project/lib/python2.6/site-packages/raven/contrib/django/models.py", line 133, in get_client
    instance = getattr(__import__(module, {}, {}, class_name), class_name)(**options)
  File "/home/dev/env/project/lib/python2.6/site-packages/raven/base.py", line 152, in __init__
    self.logger.info(msg)
  File "/usr/lib/python2.6/logging/__init__.py", line 1056, in info
    self._log(INFO, msg, args, **kwargs)
  File "/usr/lib/python2.6/logging/__init__.py", line 1172, in _log
    record = self.makeRecord(self.name, level, fn, lno, msg, args, exc_info, func, extra)
  File "/usr/lib/python2.6/logging/__init__.py", line 1147, in makeRecord
    rv = LogRecord(name, level, fn, lno, msg, args, exc_info, func)
  File "/usr/lib/python2.6/logging/__init__.py", line 252, in __init__
    self.levelname = getLevelName(level)
RuntimeError: maximum recursion depth exceeded

我究竟做错了什么?

当我有一个更新版本的乌鸦指向旧版本的哨兵时,我遇到了这个问题。

确保您的乌鸦是您正在运行的哨兵实例的正确乌鸦。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM