minhhungg's picture
Add logger file
5e0196d
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