에러 트래킹 시스템
Nginx
로그는 직접 봐야 한다. /var/log/nginx/error.log
uWSGI
로그는 대부분 Django
에서 나는 에러를 uWSGI
가 잡는 것.
만약 Intenal server error
일 경우 보통 uWSGI
에러인데 Django
에서 에어를 트래킹을 못할수도 있다.
장고에서 일어난 에러의 경우 대부분 400 Bad request
가 발생하는데 그 부분의 로그를 보려면 uWSGI
로 들어가서 에러를 봐야 한다.
좀더 편하게 에러 로그를 보기위해 에러 트래킹 시스템을 써보자.
Sentry
설치
pip install raven --upgrade
설정
config/settings.py
import os
import raven
RAVEN_CONFIG = {
'dsn': 'Your DSN code',
'release': raven.fetch_git_sha(os.path.abspath(os.pardir)),
}
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', # To capture more than ERROR, change to WARNING, INFO, etc.
'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler',
'tags': {'custom-tag': 'x'},
},
'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,
},
},
}
INSTALLED_APPS = (
'raven.contrib.django.raven_compat',
)
테스트 코드로 에러를 발생 시켜 보자
python manage.py raven test
아니면 일부러 아무 에러나 일으켜 보자.
ALLOWED_HOSTS
라던가..
이렇게 에러 트래킹을 하면 된다.
Comments