"""Logging configuration for the chat agent application.""" import logging import sys from pathlib import Path from typing import Optional def setup_logger( name: str = "th_agenter", level: str = "DEBUG", log_file: Optional[str] = None ) -> logging.Logger: """Setup logger with console and optional file output. Args: name: Logger name level: Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL) log_file: Optional log file path Returns: Configured logger instance """ logger = logging.getLogger(name) # Clear existing handlers logger.handlers.clear() # Set level logger.setLevel(getattr(logging, level.upper())) # Create formatter formatter = logging.Formatter( "%(asctime)s - %(name)s - %(levelname)s - %(message)s", datefmt="%Y-%m-%d %H:%M:%S" ) # Console handler console_handler = logging.StreamHandler(sys.stdout) console_handler.setFormatter(formatter) logger.addHandler(console_handler) # File handler (optional) if log_file: log_path = Path(log_file) log_path.parent.mkdir(parents=True, exist_ok=True) file_handler = logging.FileHandler(log_path, encoding="utf-8") file_handler.setFormatter(formatter) logger.addHandler(file_handler) return logger # Default logger instance logger = setup_logger() def get_logger(name: str) -> logging.Logger: """Get a logger instance with the specified name. Args: name: Logger name Returns: Logger instance """ return logging.getLogger(f"th_agenter.{name}")