ApplicantPortal/app/util/log.py
2025-03-12 20:43:26 -06:00

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)