45 lines
1.2 KiB
Python
45 lines
1.2 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 " f"{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
|