Spaces:
Runtime error
Runtime error
File size: 1,429 Bytes
e363158 | 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 | 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
|