Spaces:
Runtime error
Runtime error
| import logging | |
| import sys | |
| import colorlog | |
| def setup_logger(name: str) -> logging.Logger: | |
| """ | |
| Set up a logger with colored output for console if running in a terminal. | |
| Args: | |
| name (str): Name of the logger. | |
| Returns: | |
| logging.Logger: Configured logger instance. | |
| """ | |
| # Check if the output is a terminal to enable colored output | |
| use_colors = sys.stdout.isatty() | |
| # Create a stream handler | |
| handler = colorlog.StreamHandler() | |
| if use_colors: | |
| # Use colored formatter for terminal output | |
| handler.setFormatter( | |
| colorlog.ColoredFormatter( | |
| "%(asctime)s - %(log_color)s%(levelname)s%(reset)s - %(message)s", | |
| datefmt="%Y-%m-%d %H:%M:%S", | |
| log_colors={ | |
| "DEBUG": "cyan", | |
| "INFO": "green", | |
| "WARNING": "yellow", | |
| "ERROR": "red", | |
| "CRITICAL": "bold_red", | |
| }, | |
| ) | |
| ) | |
| else: | |
| # Use standard formatter when not in a terminal | |
| handler.setFormatter( | |
| logging.Formatter( | |
| "%(asctime)s - %(levelname)s - %(message)s", datefmt="%Y-%m-%d %H:%M:%S" | |
| ) | |
| ) | |
| # Configure the logger | |
| logger = logging.getLogger(name) | |
| logger.addHandler(handler) | |
| logger.setLevel(logging.INFO) | |
| logger.propagate = False | |
| return logger | |