[settings] use Django 1.3 way to setup loggers

Django 1.3 now support a simple LOGGING setting key which contain a
logging dictConfig (see
http://docs.python.org/library/logging.config.html).
This commit is contained in:
Benjamin Dauvergne 2011-04-26 17:01:23 +02:00
parent 53757c9157
commit 9367e376df
1 changed files with 52 additions and 39 deletions

View File

@ -241,12 +241,59 @@ IDP_CAS = False
# expiration time in seconds of the cas tickets
# CAS_TICKET_EXPIRATION = 240
import logging
# Logging settings
LOG_FILENAME = os.path.join(_PROJECT_PATH, 'log.log')
LOG_FILE_LEVEL = logging.DEBUG
LOG_SYSLOG = True
LOG_SYS_LEVEL = logging.WARNING
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'verbose': {
'format': '[%(asctime)s] %(levelname)-8s %(name)s.%(message)s',
'datefmt': '%Y-%m-%d %a %H:%M:%S'
},
},
'handlers': {
'null': {
'level':'DEBUG',
'class':'django.utils.log.NullHandler',
},
'console': {
'level':'DEBUG',
'class':'logging.StreamHandler',
'formatter': 'verbose'
},
'local_file': {
'level':'DEBUG',
'class':'logging.FileHandler',
'formatter': 'verbose',
'filename': os.path.join(_PROJECT_PATH, 'log.log'),
},
'syslog': {
'level':'INFO',
'class':'logging.handlers.SysLogHandler',
},
'mail_admins': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler',
'include_html': True,
}
},
'loggers': {
'django': {
'handlers':['null'],
'propagate': True,
'level':'INFO',
},
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': False,
},
},
'root': {
'handlers': ['console', 'local_file'],
'level': 'DEBUG',
}
}
# local_settings.py can be used to override environment-specific settings
@ -289,37 +336,3 @@ if IDP_OPENID:
if IDP_CAS:
INSTALLED_APPS += ('authentic2.idp.idp_cas',)
from logging.handlers import SysLogHandler
import threading
import sys
_LOCAL = threading.local()
def getlogger():
logger = getattr(_LOCAL, 'logger', None)
if logger is not None:
return logger
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
formatter = logging.Formatter('[%(asctime)s] %(levelname)-8s %(name)s.%(message)s','%Y-%m-%d %a %H:%M:%S')
if LOG_FILENAME:
log_handler = logging.FileHandler(LOG_FILENAME)
log_handler.setFormatter(formatter)
log_handler.setLevel(LOG_FILE_LEVEL)
logger.addHandler(log_handler)
if LOG_SYSLOG:
syslog_handler = SysLogHandler(address = '/dev/log')
formatter = logging.Formatter('authentic %(levelname)-8s %(name)s.%(message)s','%Y-%m-%d %a %H:%M:%S')
syslog_handler.setFormatter(formatter)
syslog_handler.setLevel(LOG_SYS_LEVEL)
logger.addHandler(syslog_handler)
setattr(_LOCAL,'logger',logger)
return logger
getlogger()