import logging import os from logging.handlers import RotatingFileHandler LOG_DIR = "logs" LOG_FILE = "app.log" LOG_PATH = os.path.join(LOG_DIR, LOG_FILE) class LoggerFactory: # logger.info("Connected with result code %s", str(rc)) # logger.warning("Neue MAC-Adresse gefunden: %s", mac) # logger.error("Failed writing to InfluxDb: %s", e) @staticmethod def get_logger(name: str, level=logging.DEBUG) -> logging.Logger: if not os.path.exists(LOG_DIR): os.makedirs(LOG_DIR) logger = logging.getLogger(name) if logger.hasHandlers(): return logger # vermeidet doppelte Handler logger.setLevel(level) formatter = logging.Formatter( "[%(asctime)s] %(levelname)s in %(name)s: %(message)s", datefmt="%Y-%m-%d %H:%M:%S", ) file_handler = RotatingFileHandler( LOG_PATH, maxBytes=5_000_000, backupCount=5 ) file_handler.setFormatter(formatter) logger.addHandler(file_handler) return logger