"""Logger setup for DocVault.""" import logging import logging.handlers import os from server.config import LOG_DIR, LOG_FORMAT, LOG_LEVEL def setup_logger(name: str) -> logging.Logger: """Build a logger with console output and best-effort file logging.""" logger = logging.getLogger(name) logger.setLevel(getattr(logging, LOG_LEVEL)) if logger.hasHandlers(): return logger formatter = logging.Formatter(LOG_FORMAT) console_handler = logging.StreamHandler() console_handler.setLevel(getattr(logging, LOG_LEVEL)) console_handler.setFormatter(formatter) logger.addHandler(console_handler) log_file = os.path.join(LOG_DIR, f"{name}.log") try: file_handler = logging.handlers.RotatingFileHandler( log_file, maxBytes=10 * 1024 * 1024, backupCount=5, ) file_handler.setLevel(getattr(logging, LOG_LEVEL)) file_handler.setFormatter(formatter) logger.addHandler(file_handler) except OSError: pass return logger