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 |
|
-
|