Files
thechart/src/logger.py

41 lines
1.1 KiB
Python

import logging
import colorlog
from constants import LOG_PATH
def init_logger(dunder_name, testing_mode) -> logging.Logger:
log_format = "%(asctime)s - %(name)s - %(funcName)s - %(levelname)s - %(message)s"
""" Initialize logging """
bold_seq = "\033[1m"
colorlog_format = f"{bold_seq} %(log_color)s {log_format}"
colorlog.basicConfig(format=colorlog_format)
logger = logging.getLogger(dunder_name)
if testing_mode:
logger.setLevel(logging.DEBUG)
else:
logger.setLevel(logging.INFO)
fh = logging.FileHandler(f"{LOG_PATH}/app.log")
fh.setLevel(logging.DEBUG)
formatter = logging.Formatter(log_format)
fh.setFormatter(formatter)
logger.addHandler(fh)
fh = logging.FileHandler(f"{LOG_PATH}/app.warning.log")
fh.setLevel(logging.WARNING)
formatter = logging.Formatter(log_format)
fh.setFormatter(formatter)
logger.addHandler(fh)
fh = logging.FileHandler(f"{LOG_PATH}/app.error.log")
fh.setLevel(logging.ERROR)
formatter = logging.Formatter(log_format)
fh.setFormatter(formatter)
logger.addHandler(fh)
return logger