Dhruv Pawar
Initial commit: add all project files
5e0ae28
"""
Enhanced logging configuration - Independent module
"""
import logging
import os
from pathlib import Path
from logging.handlers import RotatingFileHandler
def setup_logging():
"""
🔧 ENHANCED LOGGING SETUP
"""
logger = logging.getLogger('reasoning_system')
log_level_str = os.getenv('LOG_LEVEL', 'INFO').upper()
log_level = getattr(logging, log_level_str, logging.INFO)
logger.setLevel(log_level)
if logger.handlers:
return logger
# Console handler
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)
console_format = logging.Formatter(
'%(asctime)s | %(levelname)-8s | %(message)s',
datefmt='%H:%M:%S'
)
console_handler.setFormatter(console_format)
# File handler with rotation
log_dir = Path('logs')
log_dir.mkdir(exist_ok=True)
file_handler = RotatingFileHandler(
log_dir / 'reasoning_system.log',
maxBytes=10*1024*1024,
backupCount=5,
encoding='utf-8'
)
file_handler.setLevel(logging.DEBUG)
file_format = logging.Formatter(
'%(asctime)s | %(levelname)-8s | %(name)s:%(lineno)d | %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
file_handler.setFormatter(file_format)
# Error-only file handler
error_handler = RotatingFileHandler(
log_dir / 'errors.log',
maxBytes=5*1024*1024,
backupCount=3,
encoding='utf-8'
)
error_handler.setLevel(logging.ERROR)
error_handler.setFormatter(file_format)
logger.addHandler(console_handler)
logger.addHandler(file_handler)
logger.addHandler(error_handler)
logger.propagate = False
return logger
# Initialize logger at module level
logger = setup_logging()