* Use sentry as root logger for all logs above WARNING
* Log DB errors in console
* Log sentry errors in console
* Log raven errors in console
This commit is contained in:
John Giannelos 2018-03-13 15:01:25 +01:00
Родитель 012132a0ae
Коммит 2117abff21
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 77FD7BCD3B14D70C
2 изменённых файлов: 60 добавлений и 39 удалений

Просмотреть файл

@ -2,7 +2,6 @@
# Django settings for the mozillians project.
import json
import logging
import os.path
import sys
@ -132,19 +131,6 @@ ALLOWED_HOSTS = config('ALLOWED_HOSTS', default=DOMAIN, cast=Csv())
# Site ID is used by Django's Sites framework.
SITE_ID = 1
# Log settings
LOG_LEVEL = logging.INFO
HAS_SYSLOG = config('HAS_SYSLOG', default=True, cast=bool)
LOGGING_CONFIG = None
SYSLOG_TAG = config('SYSLOG_TAG', default="http_app_mozillians")
LOGGING = {
'loggers': {
'landing': {'level': logging.INFO},
'phonebook': {'level': logging.INFO},
},
}
HEALTHCHECKS_IO_URL = config('HEALTHCHECKS_IO_URL', default='')
X_FRAME_OPTIONS = config('X_FRAME_OPTIONS', default='DENY')
@ -449,8 +435,63 @@ ES_REINDEX_TIMEOUT = config('ES_REINDEX_TIMEOUT', default=1800, cast=int)
# Setup django-axes
AXES_BEHIND_REVERSE_PROXY = config('AXES_BEHIND_REVERSE_PROXY', default=True, cast=bool)
# Setup sentry
# Setup logging and sentry
RAVEN_CONFIG = config('RAVEN_CONFIG', cast=json.loads, default='{}')
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'root': {
'level': 'WARNING',
'handlers': ['sentry'],
},
'formatters': {
'django.server': {
'()': 'django.utils.log.ServerFormatter',
'format': '[%(server_time)s] %(message)s',
},
'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',
},
'django.server': {
'level': 'INFO',
'class': 'logging.StreamHandler',
'formatter': 'django.server',
},
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'verbose'
}
},
'loggers': {
'django.db.backends': {
'level': 'ERROR',
'handlers': ['console'],
'propagate': False,
},
'django.server': {
'handlers': ['django.server'],
'level': 'INFO',
'propagate': False,
},
'sentry.errors': {
'level': 'DEBUG',
'handlers': ['console'],
'propagate': False,
},
'raven': {
'level': 'DEBUG',
'handlers': ['console'],
'propagate': False,
},
}
}
#######################
# Project Configuration
@ -660,29 +701,6 @@ if DEV:
)
LOGGING = {
'formatters': {
'django.server': {
'()': 'django.utils.log.ServerFormatter',
'format': '[%(server_time)s] %(message)s',
}
},
'handlers': {
'django.server': {
'level': 'INFO',
'class': 'logging.StreamHandler',
'formatter': 'django.server',
},
},
'loggers': {
'django.server': {
'handlers': ['django.server'],
'level': 'INFO',
'propagate': False,
}
}
}
if DEBUG:
for backend in TEMPLATES:
backend['OPTIONS']['debug'] = DEBUG

Просмотреть файл

@ -6,6 +6,9 @@ try:
except ImportError:
newrelic = False
from raven.contrib.django.raven_compat.middleware.wsgi import Sentry
if newrelic:
newrelic_ini = os.getenv('NEWRELIC_PYTHON_INI_FILE', False)
if newrelic_ini:
@ -21,7 +24,7 @@ wsgidir = os.path.dirname(__file__)
site.addsitedir(os.path.abspath(os.path.join(wsgidir, '../')))
from django.core.wsgi import get_wsgi_application # noqa
application = get_wsgi_application()
application = Sentry(get_wsgi_application())
if newrelic:
application = newrelic.agent.wsgi_application()(application)