Projet

Général

Profil

0003-logger-deprecate-SettingsLogLevel-29149.patch

Benjamin Dauvergne, 22 août 2020 23:55

Télécharger (2,57 ko)

Voir les différences:

Subject: [PATCH 3/5] logger: deprecate SettingsLogLevel (#29149)

 debian/debian_config_common.py |  4 +---
 hobo/logger.py                 | 33 +++++----------------------------
 2 files changed, 6 insertions(+), 31 deletions(-)
debian/debian_config_common.py
119 119
    'loggers': {
120 120
        'django.db': {
121 121
            # even when debugging seeing SQL queries is too much
122
            'level': hobo.logger.SettingsLogLevel(
123
                default_log_level='INFO',
124
                debug_setting='DEBUG_DB'),
122
            'level': 'INFO',
125 123
        },
126 124
        'django': {
127 125
            # Override Django default values
hobo/logger.py
21 21
import os
22 22
import pytz
23 23
import time
24
import warnings
24 25

  
25 26
from django.conf import settings
26 27
from django.db import connection
27
from django.utils import six
28 28

  
29 29
from hobo.middleware.utils import StoreRequestMiddleware
30 30

  
31 31

  
32
class SettingsLogLevel(int):
33
    def __new__(cls, default_log_level, debug_setting='DEBUG'):
34
        ob = super(SettingsLogLevel, cls).__new__(
35
            cls, getattr(logging, default_log_level))
36
        ob.debug_setting = debug_setting
37
        return ob
38

  
39
    if six.PY2:
40
        def __init__(self, default_log_level, debug_setting='DEBUG'):
41
            self.debug_setting = debug_setting
42
            super(SettingsLogLevel, self).__init__(
43
                getattr(logging, default_log_level))
44

  
45
old_getEffectiveLevel = logging.Logger.getEffectiveLevel
46

  
47

  
48
def getEffectiveLevel(self):
49
    level = old_getEffectiveLevel(self)
50
    if isinstance(level, SettingsLogLevel):
51
        from django.conf import settings
52
        debug = getattr(settings, level.debug_setting, False)
53
        if debug:
54
            return logging.DEBUG
55
    return level
56

  
57
# monkeypatch default getEffectiveLevel to get our new behaviour
58
logging.Logger.getEffectiveLevel = getEffectiveLevel
32
class SettingsLogLevel(str):
33
    def __new__(cls, value):
34
        warnings.warn('SettingsLogLevel is deprecated, use DEBUG_LOG instead.', DeprecationWarning, stacklevel=2)
35
        return super(SettingsLogLevel, cls).__new__(value)
59 36

  
60 37

  
61 38
class RequestContextFilter(logging.Filter):
62
-