tc-agent / utils /logger.py
togitoon's picture
Initial
bf5f290
import logging
import sys
from typing import Optional
def setup_logging(level: str = "INFO", logger_name: Optional[str] = None) -> logging.Logger:
"""
Set up centralized logging configuration
Args:
level: Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
logger_name: Name for the logger, if None uses root logger
Returns:
Configured logger instance
"""
# Create logger
logger = logging.getLogger(logger_name) if logger_name else logging.getLogger()
# Avoid duplicate handlers
if logger.handlers:
return logger
# Set level
logger.setLevel(getattr(logging, level.upper(), logging.INFO))
# Create console handler
console_handler = logging.StreamHandler(sys.stdout)
console_handler.setLevel(getattr(logging, level.upper(), logging.INFO))
# Create formatter
formatter = logging.Formatter(
'%(asctime)s - %(name)s - %(levelname)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
console_handler.setFormatter(formatter)
# Add handler to logger
logger.addHandler(console_handler)
return logger
# Configure the root logger for the application
def configure_app_logging():
"""Configure application-wide logging"""
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
# Create application logger
app_logger = logging.getLogger(__name__)
app_logger.info("Application logging configured")
return app_logger