| 12345678910111213141516171819202122232425262728 |
- """Logging configuration."""
- import logging
- from logging.handlers import TimedRotatingFileHandler
- from pathlib import Path
- def setup_logging(log_dir: str, retention_days: int, level: str) -> None:
- Path(log_dir).mkdir(parents=True, exist_ok=True)
- formatter = logging.Formatter("%(asctime)s %(levelname)s [%(name)s] [%(threadName)s] %(message)s")
- file_handler = TimedRotatingFileHandler(
- filename=str(Path(log_dir) / "modbus-server.log"),
- when="midnight",
- interval=1,
- backupCount=retention_days,
- encoding="utf-8",
- )
- file_handler.setFormatter(formatter)
- console_handler = logging.StreamHandler()
- console_handler.setFormatter(formatter)
- root_logger = logging.getLogger()
- root_logger.setLevel(getattr(logging, level.upper(), logging.INFO))
- root_logger.handlers.clear()
- root_logger.addHandler(file_handler)
- root_logger.addHandler(console_handler)
|