BizInsights_agent / logging_config.py
pranav8tripathi@gmail.com
aiohttp
51f35ca
"""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