@@ -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
2749class 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