Spaces:
Running
Running
| """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 | |