Hier ist eine vollständig funktionierende Protokollierungskonfiguration. Kritische Fehler werden in Sentry protokolliert, Warnungen werden per E-Mail an Administratoren gesendet, normale Benachrichtigungsfehler werden in Syslog protokolliert und Debug-Meldungen werden auf der Standardausgabe ausgegeben.
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'formatters': {
'verbose': {
'format': '[contactor] %(levelname)s %(asctime)s %(message)s'
},
},
'handlers': {
# Send all messages to console
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
},
# Send info messages to syslog
'syslog':{
'level':'INFO',
'class': 'logging.handlers.SysLogHandler',
'facility': SysLogHandler.LOG_LOCAL2,
'address': '/dev/log',
'formatter': 'verbose',
},
# Warning messages are sent to admin emails
'mail_admins': {
'level': 'WARNING',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler',
},
# critical errors are logged to sentry
'sentry': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'raven.contrib.django.handlers.SentryHandler',
},
},
'loggers': {
# This is the "catch all" logger
'': {
'handlers': ['console', 'syslog', 'mail_admins', 'sentry'],
'level': 'DEBUG',
'propagate': False,
},
}
}
Gibt es irgendwo eine Stoderr-Logger-Option? – Bryce
Die [logging.StreamHandler-Klasse] (http://docs.python.org/2/library/logging.handlers.html#streamhandler) Standardausgabe ist stderr. –
Also, wenn ich überprüft, propagieren auf True, würde ich das DEBUG = True Verhalten der Protokollierung über Apache? – Bryce