Spaces:
Sleeping
Sleeping
| """Logging configuration for RivalLens.""" | |
| import logging | |
| import os | |
| import sys | |
| from pathlib import Path | |
| # Use /tmp/logs as the default log directory for container environments | |
| # This is writable in most container environments including Hugging Face Spaces | |
| log_dir = Path("/tmp/logs") | |
| log_dir.mkdir(parents=True, exist_ok=True, mode=0o777) # Ensure directory is writable | |
| # Logging configuration | |
| LOGGING_CONFIG = { | |
| "version": 1, | |
| "disable_existing_loggers": False, | |
| "formatters": { | |
| "standard": { | |
| "format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s", | |
| "datefmt": "%Y-%m-%d %H:%M:%S" | |
| }, | |
| }, | |
| "handlers": { | |
| "console": { | |
| "level": "INFO", | |
| "formatter": "standard", | |
| "class": "logging.StreamHandler", | |
| "stream": "ext://sys.stdout", | |
| }, | |
| "file": { | |
| "level": "DEBUG", | |
| "formatter": "standard", | |
| "class": "logging.handlers.RotatingFileHandler", | |
| "filename": str(log_dir / "rival_lens.log"), | |
| "maxBytes": 10485760, # 10MB | |
| "backupCount": 5, | |
| "encoding": "utf8" | |
| }, | |
| }, | |
| "loggers": { | |
| "": { # root logger | |
| "handlers": ["console", "file"], | |
| "level": "DEBUG", | |
| "propagate": True | |
| }, | |
| "app": { | |
| "handlers": ["console", "file"], | |
| "level": "DEBUG", | |
| "propagate": False | |
| }, | |
| "__main__": { | |
| "handlers": ["console", "file"], | |
| "level": "DEBUG", | |
| "propagate": False | |
| }, | |
| } | |
| } | |
| def configure_logging(): | |
| """Configure logging for the application.""" | |
| import logging.config | |
| logging.config.dictConfig(LOGGING_CONFIG) | |
| logger = logging.getLogger(__name__) | |
| logger.info("Logging configured") | |
| return logger | |