0001-misc-log-DisallowedHost-as-warnings-42824.patch
debian/debian_config_common.py | ||
---|---|---|
71 | 71 |
'debug_log': { |
72 | 72 |
'()': 'hobo.logger.DebugLogFilter', |
73 | 73 |
}, |
74 |
'clamp_to_warning': { |
|
75 |
'()': 'hobo.logger.ClampLogLevel', |
|
76 |
'level': 'WARNING', |
|
77 |
} |
|
74 | 78 |
}, |
75 | 79 |
'formatters': { |
76 | 80 |
'syslog': { |
... | ... | |
146 | 150 |
'level': 'NOTSET', |
147 | 151 |
'propagate': True, |
148 | 152 |
}, |
149 |
'django.core.exceptions.SuspiciousFileOperation': { |
|
150 |
'handlers': ['null'], |
|
151 |
'propagate': False, |
|
153 |
'django.security.SuspiciousFileOperation': { |
|
154 |
'filters': ['clamp_to_warning'], |
|
152 | 155 |
}, |
153 | 156 |
'django.security.DisallowedRedirect': { |
154 |
'handlers': ['null'], |
|
155 |
'propagate': False, |
|
157 |
'filters': ['clamp_to_warning'], |
|
158 |
}, |
|
159 |
'django.core.exceptions.DisallowedHost': { |
|
160 |
'filters': ['clamp_to_warning'], |
|
156 | 161 |
}, |
157 | 162 |
'django.template': { |
158 | 163 |
# too much logs on DEBUG level |
hobo/logger.py | ||
---|---|---|
217 | 217 |
return |
218 | 218 |
for record in cls(debug_log_path)._parse(cursor=cursor): |
219 | 219 |
yield record |
220 | ||
221 | ||
222 |
class ClampLogLevel(logging.Filter): |
|
223 |
def __init__(self, level): |
|
224 |
self.levelname = level.upper() |
|
225 |
self.levelno = getattr(logging, self.levelname) |
|
226 |
super(ClampLogLevel, self).__init__() |
|
227 | ||
228 |
def filter(self, record): |
|
229 |
if record.levelno > self.levelno: |
|
230 |
record.levelno = self.levelno |
|
231 |
record.levelname = self.levelname |
|
232 |
return super(ClampLogLevel, self).filter(record) |
tests_multitenant/test_logger.py | ||
---|---|---|
24 | 24 | |
25 | 25 |
from tenant_schemas.utils import tenant_context |
26 | 26 | |
27 |
from hobo.logger import DebugLog |
|
27 |
from hobo.logger import DebugLog, ClampLogLevel
|
|
28 | 28 | |
29 | 29 | |
30 | 30 |
@pytest.fixture |
... | ... | |
105 | 105 |
lines2 = list(DebugLog.lines(cursor=lines[0]['cursor'])) |
106 | 106 |
assert len(lines2) == 1 |
107 | 107 |
assert lines[1] == lines2[0] |
108 | ||
109 | ||
110 |
def test_clamp_log_level(caplog): |
|
111 |
logger = logging.getLogger('django.security.SuspiciousFileOperation') |
|
112 |
logger.addFilter(ClampLogLevel(level='WARNING')) |
|
113 |
logger.error('test') |
|
114 |
assert caplog.records[-1].levelname == 'WARNING' |
|
108 |
- |