|
16 | 16 | import importlib.util |
17 | 17 | import io |
18 | 18 | import json |
| 19 | +import logging |
19 | 20 | import os.path |
20 | 21 | import pathlib |
21 | 22 | import sys |
@@ -62,6 +63,18 @@ def write(self, out): |
62 | 63 | return self.stderr.write(json.dumps(payload) + "\n") |
63 | 64 |
|
64 | 65 |
|
| 66 | +def setup_logging(): |
| 67 | + logging.getLogger().setLevel(logging.INFO) |
| 68 | + info_handler = logging.StreamHandler(sys.stdout) |
| 69 | + info_handler.setLevel(logging.NOTSET) |
| 70 | + info_handler.addFilter(lambda record: record.levelno <= logging.INFO) |
| 71 | + logging.getLogger().addHandler(info_handler) |
| 72 | + |
| 73 | + warn_handler = logging.StreamHandler(sys.stderr) |
| 74 | + warn_handler.setLevel(logging.WARNING) |
| 75 | + logging.getLogger().addHandler(warn_handler) |
| 76 | + |
| 77 | + |
65 | 78 | def _http_view_func_wrapper(function, request): |
66 | 79 | def view_func(path): |
67 | 80 | return function(request._get_current_object()) |
@@ -237,15 +250,9 @@ def handle_none(rv): |
237 | 250 | app.make_response = handle_none |
238 | 251 |
|
239 | 252 | # Handle log severity backwards compatibility |
240 | | - import logging # isort:skip |
241 | | - |
242 | | - logging.info = _LoggingHandler("INFO", sys.stderr).write |
243 | | - logging.warn = _LoggingHandler("ERROR", sys.stderr).write |
244 | | - logging.warning = _LoggingHandler("ERROR", sys.stderr).write |
245 | | - logging.error = _LoggingHandler("ERROR", sys.stderr).write |
246 | | - logging.critical = _LoggingHandler("ERROR", sys.stderr).write |
247 | 253 | sys.stdout = _LoggingHandler("INFO", sys.stderr) |
248 | 254 | sys.stderr = _LoggingHandler("ERROR", sys.stderr) |
| 255 | + setup_logging() |
249 | 256 |
|
250 | 257 | # Extract the target function from the source file |
251 | 258 | if not hasattr(source_module, target): |
|
0 commit comments