import logging
import os
from logging.handlers import RotatingFileHandler
from app.core.config import settings
def setup_logging():
"""Setup logging configuration"""
# Create logs directory if it doesn't exist
os.makedirs("logs", exist_ok=True)
# Configure root logger
root_logger = logging.getLogger()
root_logger.setLevel(logging.INFO)
# Create formatters
file_formatter = logging.Formatter(
'%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
console_formatter = logging.Formatter(
'%(levelname)s - %(message)s'
)
# File handler
file_handler = RotatingFileHandler(
'logs/app.log',
maxBytes=10485760, # 10MB
backupCount=5
)
file_handler.setFormatter(file_formatter)
file_handler.setLevel(logging.INFO)
# Console handler
console_handler = logging.StreamHandler()
console_handler.setFormatter(console_formatter)
console_handler.setLevel(logging.INFO)
# Add handlers
root_logger.addHandler(file_handler)
root_logger.addHandler(console_handler)
# Set logging level based on debug mode
if settings.DEBUG:
root_logger.setLevel(logging.DEBUG)
file_handler.setLevel(logging.DEBUG)
console_handler.setLevel(logging.DEBUG)
return root_logger
# Initialize logging
logger = setup_logging()