logger: deprecate SettingsLogLevel (#29149)

This commit is contained in:
Benjamin Dauvergne 2020-04-26 10:53:41 +02:00
parent e1647d8f56
commit 050dbcb921
2 changed files with 6 additions and 31 deletions

View File

@ -119,9 +119,7 @@ LOGGING = {
'loggers': {
'django.db': {
# even when debugging seeing SQL queries is too much
'level': hobo.logger.SettingsLogLevel(
default_log_level='INFO',
debug_setting='DEBUG_DB'),
'level': 'INFO',
},
'django': {
# Override Django default values

View File

@ -21,41 +21,18 @@ import logging.handlers
import os
import pytz
import time
import warnings
from django.conf import settings
from django.db import connection
from django.utils import six
from hobo.middleware.utils import StoreRequestMiddleware
class SettingsLogLevel(int):
def __new__(cls, default_log_level, debug_setting='DEBUG'):
ob = super(SettingsLogLevel, cls).__new__(
cls, getattr(logging, default_log_level))
ob.debug_setting = debug_setting
return ob
if six.PY2:
def __init__(self, default_log_level, debug_setting='DEBUG'):
self.debug_setting = debug_setting
super(SettingsLogLevel, self).__init__(
getattr(logging, default_log_level))
old_getEffectiveLevel = logging.Logger.getEffectiveLevel
def getEffectiveLevel(self):
level = old_getEffectiveLevel(self)
if isinstance(level, SettingsLogLevel):
from django.conf import settings
debug = getattr(settings, level.debug_setting, False)
if debug:
return logging.DEBUG
return level
# monkeypatch default getEffectiveLevel to get our new behaviour
logging.Logger.getEffectiveLevel = getEffectiveLevel
class SettingsLogLevel(str):
def __new__(cls, value):
warnings.warn('SettingsLogLevel is deprecated, use DEBUG_LOG instead.', DeprecationWarning, stacklevel=2)
return super(SettingsLogLevel, cls).__new__(value)
class RequestContextFilter(logging.Filter):