def get_and_configure_logger(name: str) -> logging.Logger: unconfigure_root_logger() global LOG_LEVEL if LOG_LEVEL is None: LOG_LEVEL = get_env_variable_gracefully("LOG_LEVEL", "INFO") # Set level to a environment variable; I think at least logger = daiquiri.getLogger(name) logger.setLevel(logging.getLevelName(LOG_LEVEL)) # This is the local handler handler = logging.StreamHandler(sys.stdout) handler.setFormatter( daiquiri.formatter.ColorExtrasFormatter(fmt=FORMAT_STRING, keywords=[])) logger.logger.addHandler(handler) # This is the Sentry handler if settings.RAVEN_DSN: from raven.contrib.django.handlers import SentryHandler handler = SentryHandler() handler.setFormatter( daiquiri.formatter.ColorExtrasFormatter(fmt=FORMAT_STRING, keywords=[])) handler.setLevel(logging.WARNING) logger.logger.addHandler(handler) return logger
SENTRY_CACHE_BACKEND = 'default' EMAIL_SUBJECT_PREFIX = '[Sentry] ' # Configure logging from raven.conf import setup_logging from raven.contrib.django.handlers import SentryHandler import logging # Configure root logger logger = logging.getLogger() logger.setLevel(logging.INFO) handler = logging.StreamHandler() handler.setLevel(logging.INFO) logger.addHandler(handler) # Disable django.request as it's generally useless logger = logging.getLogger('django.request') logger.propagate = False logger.addHandler(handler) # Configure default sentry logging sentry_handler = SentryHandler() sentry_handler.setLevel(logging.ERROR) setup_logging(sentry_handler) # Configure celery import djcelery djcelery.setup_loader()