tcid / utils.py
ror's picture
ror HF Staff
Version 0.4
c1a3d27
import logging
import sys
from datetime import datetime
class TimestampFormatter(logging.Formatter):
"""Custom formatter that matches the existing timestamp format used in print statements."""
def format(self, record):
# Create timestamp in the same format as existing print statements
timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
# Format the message with timestamp prefix
if record.levelno == logging.WARNING:
return f"WARNING: {record.getMessage()}"
elif record.levelno == logging.ERROR:
return f"Error {record.getMessage()}"
else:
return f"[{timestamp}] {record.getMessage()}"
def setup_logger(name="tcid", level=logging.INFO):
"""Set up logger with custom timestamp formatting to match existing print format."""
logger = logging.getLogger(name)
# Avoid adding multiple handlers if logger already exists
if logger.handlers:
return logger
logger.setLevel(level)
# Create console handler
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(level)
# Set custom formatter
formatter = TimestampFormatter()
handler.setFormatter(formatter)
logger.addHandler(handler)
return logger
# Create default logger instance
logger = setup_logger()
def generate_underlined_line(text: str) -> str:
return text + "\n" + "─" * len(text)