38 lines
1.0 KiB
Python
38 lines
1.0 KiB
Python
import logging
|
|
|
|
LOG_FORMAT = '%(asctime)s %(app_name)s v%(app_version)s [%(levelname)s] %(message)s [%(filename)s:%(lineno)d]'
|
|
|
|
|
|
class ContextFilter(logging.Filter):
|
|
def __init__(self, app_name, app_version):
|
|
self.app_name = app_name.upper()
|
|
self.app_version = app_version
|
|
super().__init__()
|
|
|
|
def filter(self, record):
|
|
record.app_name = self.app_name
|
|
record.app_version = self.app_version
|
|
return True
|
|
|
|
|
|
def set_up_logging(app, app_name):
|
|
log = logging.getLogger('werkzeug')
|
|
log.setLevel(logging.WARN)
|
|
|
|
logger = app.logger
|
|
|
|
for handler in logger.handlers:
|
|
logger.removeHandler(handler)
|
|
|
|
log_formatter = logging.Formatter(LOG_FORMAT)
|
|
|
|
# set up the new handlers
|
|
stream_handler = logging.StreamHandler()
|
|
stream_handler.setFormatter(log_formatter)
|
|
stream_handler.setLevel(logging.INFO)
|
|
|
|
logger.addFilter(ContextFilter(app_name, app.config['VERSION']))
|
|
logger.addHandler(stream_handler)
|
|
|
|
app.logger.setLevel(logging.INFO)
|