File size: 1,740 Bytes
5e0196d |
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 |
import logging
import logging.handlers
import os
from datetime import datetime
def setup_logging(log_dir="logs"):
"""Configure logging with both file and console handlers"""
# Create logs directory if it doesn't exist
if not os.path.exists(log_dir):
os.makedirs(log_dir)
# Create formatters
file_formatter = logging.Formatter(
'%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
console_formatter = logging.Formatter(
'%(levelname)s - %(message)s'
)
# Create handlers
# File handler with daily rotation
log_file = os.path.join(log_dir, f"mcp_{datetime.now().strftime('%Y%m%d')}.log")
file_handler = logging.handlers.TimedRotatingFileHandler(
log_file,
when="midnight",
interval=1,
backupCount=7
)
file_handler.setFormatter(file_formatter)
file_handler.setLevel(logging.DEBUG)
# Console handler
console_handler = logging.StreamHandler()
console_handler.setFormatter(console_formatter)
console_handler.setLevel(logging.INFO)
# Create root logger
root_logger = logging.getLogger()
root_logger.setLevel(logging.DEBUG)
# Remove existing handlers to avoid duplicates
root_logger.handlers = []
# Add handlers
root_logger.addHandler(file_handler)
root_logger.addHandler(console_handler)
# Create specific loggers
loggers = {
'server': logging.getLogger('server'),
'research': logging.getLogger('research'),
'synthesis': logging.getLogger('synthesis'),
'client': logging.getLogger('client')
}
for logger in loggers.values():
logger.setLevel(logging.DEBUG)
return loggers |