Spaces:
Running
Running
File size: 1,416 Bytes
f1667dd c1a3d27 f1667dd c1a3d27 f1667dd c1a3d27 f1667dd c1a3d27 f1667dd c1a3d27 f1667dd c1a3d27 f1667dd c1a3d27 f1667dd c1a3d27 f1667dd 18f5759 |
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 |
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)
|