Skip to content

Commit 0b9f3a0

Browse files
authored
Merge pull request #203 from JdeRobot/wrap-formatter
Add wrap formatter
2 parents 22daba9 + ea4c64c commit 0b9f3a0

1 file changed

Lines changed: 25 additions & 1 deletion

File tree

manager/ram_logging/log_manager.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,28 @@ def format(self, record):
2323
return message
2424

2525

26+
class MaxLengthColorFormatter(logging.Formatter):
27+
# Diccionario de colores para diferentes niveles de log
28+
COLORS = {
29+
logging.ERROR: "\033[91m", # Rojo para errores
30+
logging.WARNING: "\033[93m", # Amarillo para warnings
31+
logging.INFO: "\033[0m", # Verde para info
32+
logging.DEBUG: "\033[96m", # Cyan para debug
33+
}
34+
RESET = "\033[0m" # Resetear a color por defecto
35+
MAX_LENGTH = 1000
36+
37+
def format(self, record):
38+
color = self.COLORS.get(record.levelno)
39+
msg = super().format(record)
40+
if color:
41+
msg = f"{color}{msg}{self.RESET}"
42+
if len(msg) > self.MAX_LENGTH:
43+
final_msg = msg[:self.MAX_LENGTH] + "....." + msg[len(msg)-self.MAX_LENGTH:]
44+
return final_msg
45+
else:
46+
return msg
47+
2648
@singleton
2749
class LogManager:
2850
def __init__(self):
@@ -36,6 +58,8 @@ def __init__(self):
3658
self.log_formatter = logging.Formatter(log_format, date_format)
3759
self.color_formatter = ColorFormatter(
3860
log_format, date_format) # Formatter con color
61+
self.max_color_formatter = MaxLengthColorFormatter(
62+
log_format, date_format) # Formatter con color
3963

4064
self.logger = logging.getLogger('my_app_logger')
4165
self.logger.setLevel(log_level)
@@ -48,5 +72,5 @@ def __init__(self):
4872
if log_to_console:
4973
self.console_handler = logging.StreamHandler()
5074
# Usar formatter con color para la consola
51-
self.console_handler.setFormatter(self.color_formatter)
75+
self.console_handler.setFormatter(self.max_color_formatter)
5276
self.logger.addHandler(self.console_handler)

0 commit comments

Comments
 (0)