File size: 1,802 Bytes
5e0ae28 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
"""
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()
|