bumper/bumper/util.py
Robert Resch ccca39761c run isort
2022-01-30 12:03:53 +01:00

45 lines
1.3 KiB
Python

import logging
import os
import sys
from logging.handlers import RotatingFileHandler
from typing import MutableMapping
logformat = logging.Formatter(
"[%(asctime)s] :: %(levelname)s :: %(name)s :: %(module)s :: %(funcName)s :: %(lineno)d :: %(message)s"
)
__loggers: MutableMapping[str, logging.Logger] = {}
log_to_stdout = os.environ.get("LOG_TO_STDOUT")
def get_logger(name: str, rotate: RotatingFileHandler = None) -> logging.Logger:
found_logger = __loggers.get(name)
if found_logger:
return found_logger
logger = logging.getLogger(name)
if not log_to_stdout:
if not rotate:
rotate = RotatingFileHandler(
f"logs/{name}.log", maxBytes=5000000, backupCount=5
)
rotate.setFormatter(logformat)
logger.addHandler(rotate)
else:
logger.addHandler(logging.StreamHandler(sys.stdout))
__loggers[name] = logger
if name == "mqttserver":
get_logger("transitions", rotate).setLevel(
logging.CRITICAL + 1
) # Ignore this logger
get_logger("passlib", rotate).setLevel(
logging.CRITICAL + 1
) # Ignore this logger
get_logger("hbmqtt.broker", rotate)
get_logger("hbmqtt.mqtt.protocol", rotate)
get_logger("hbmqtt.client", rotate)
return logger