Spaces:
Sleeping
Sleeping
| 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) | |