blob: 2cb0ca0fe7f9baba8c00e6760062f10879c12a4a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
"""Setup loggers"""
import os
import sys
import logging
from logging import StreamHandler
logging.basicConfig(
format=("%(asctime)s — %(filename)s:%(lineno)s — %(levelname)s "
"(%(thread)d:%(threadName)s): %(message)s")
)
# ========== Setup formatters ==========
# ========== END: Setup formatters ==========
def loglevel(app):
"""'Compute' the LOGLEVEL from the application."""
return logging.DEBUG if app.config.get("DEBUG", False) else logging.WARNING
def setup_modules_logging(level, modules):
"""Configure logging levels for a list of modules."""
for module in modules:
_logger = logging.getLogger(module)
_logger.setLevel(level)
def __add_default_handlers__(app):
"""Add some default handlers, if running in dev environment."""
stderr_handler = StreamHandler(stream=sys.stderr)
app.logger.addHandler(stderr_handler)
root_logger = logging.getLogger()
root_logger.addHandler(stderr_handler)
root_logger.setLevel(loglevel(app))
def __add_gunicorn_handlers__(app):
"""Set up logging for the WSGI environment with GUnicorn"""
logger = logging.getLogger("gunicorn.error")
app.logger.handlers = logger.handlers
app.logger.setLevel(logger.level)
return app
def setup_app_logging(app):
"""Setup the logging handlers for the application `app`."""
software, *_version_and_comments = os.environ.get(
"SERVER_SOFTWARE", "").split('/')
return (__add_gunicorn_handlers__(app)
if bool(software)
else __add_default_handlers__(app))
|