2011-04-22 2 views
6

방금 ​​django-sentry를 설치했는데 예외가 발생했습니다. 그러나 logger.warning과 logger.error에 대한 호출은 어떤 이유로 Sentry에 저장되지 않습니다.django-sentry가 경고, 오류 등을 기록하지 않습니다.

센트리 구현 :

import logging 
from sentry.client.handlers import SentryHandler 

logger = logging.getLogger() 
# ensure we havent already registered the handler 
if SentryHandler not in map(lambda x: x.__class__, logger.handlers): 
    logger.addHandler(SentryHandler()) 
# Add StreamHandler to sentry's default so you can catch missed exceptions 
logger = logging.getLogger('sentry.errors') 
logger.propagate = False 
logger.addHandler(logging.StreamHandler()) 

로거 전화 :

logger.warning("Category is not an integer", exc_info=sys.exc_info(), extra={'url': request.build_absolute_uri()}) 

어떤 아이디어? 감사합니다. 이 dev에 ENV에 나를 위해 작동,

는 Logger.setLevel (logging.DEBUG를)

을 logging.getlogger 후 :

+0

여기에 대한 업데이트가 있습니까? Sentry 로깅 잘 dev에 서버에서 작동하지만 내 프로덕션 서버에서 작동 제외하고 비슷한 문제가 있습니다. 내 작품에는 위에 열거 한 것과 똑같은 증상이 있습니다. –

+0

경고를 저장하는 로거와 Sentry 핸들러를 추가 할 때 어디에서 실행됩니까? 예를 들어 manage.py에서 사용할 경우 프로덕션 환경에서 실행될 수 없기 때문입니다. – Alerion

+0

경고를 기록하기 바로 전에 Sentry 로거를 추가 했으므로 실행이 확실해졌습니다. 왜 내 dev에 서버 및 내 프로덕션 서버에서 작동하지 않을지 모르겠다. –

답변

3

추가하려고합니다.

+0

답장을 보내 주셔서 감사합니다. 불행히도 그것은 저를 위해 작동하지 않았다. 404s 및 500s뿐만 아니라 다른 예외는 잘 기록됩니다 ... 다른 아이디어? 감사! – rabbid

+0

약간의 업데이트. 그렇게하지 않으면 코드의 라인이 실제로 내 Django dev 서버를 죽입니다. 내가 그것을 주석 처리 할 때, 모든 것이 잘 작동한다. 미친. – rabbid

0

'sentry.errors'로거에 FileHandler를 추가하고 프로덕션 환경에 오류가 있는지 검사 할 수 있습니다. 하지만 정말로 stdout은 서버 로그에 기록되어야합니다. 이것을 확인할 수 있습니다.

3

센트리 스트림 핸들러를 logging.getLogger('sentry.errors')에 연결합니다. 즉, sentry.errors 이하의 로그는 해당 센 트리 스트림 핸들러를 사용합니다.

그러나 로그는 'my_app.something'으로 끝나지 않습니다. 따라서 거의 모든 로그 메시지가 누락되었습니다.

해결 방법 : 루트 로거에 스트림 처리기를 연결하십시오 (logging.getLogger('')).

관련 문제