es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cambio de patrón de niveles de colores predeterminados en Logback.

Necesito convertir una configuración XML de Log4j a Logback. El problema específico que tengo es que quiero reemplazar los colores predeterminados de los niveles:

Este es mi código de Log4j:

<Property name="LOG_LEVEL_PATTERN">%highlight{%5level}{FATAL=white, ERROR=red, WARN=blue, INFO=black, DEBUG=green, TRACE=blue}</Property>

Y este es el código de Logback que escribí. Esto me da niveles de colores ya que agregué <withjansi>true</withjansi> en el appender, pero quiero cambiar los colores predeterminados.

<Property name="LOG_LEVEL_PATTERN" value="%highlight(%5level)"/>
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para anular los colores predeterminados de los niveles en Logback, es necesario agregar un elemento color para cada nivel en el elemento configuration. Por ejemplo:

    <configuration>
      <property name="LOG_LEVEL_PATTERN" value="%highlight(%5level)"></property>
    
      <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <withjansi>true</withjansi>
        <encoder>
          <pattern>${LOG_LEVEL_PATTERN} [%thread] %logger{10} [%file:%line] - %msg%n</pattern>
        </encoder>
      </appender>
    
      <color name="TRACE" foreground="blue"></color>
      <color name="DEBUG" foreground="green"></color>
      <color name="INFO" foreground="black"></color>
      <color name="WARN" foreground="blue" inverted="true"></color>
      <color name="ERROR" foreground="red" inverted="true"></color>
      <color name="FATAL" foreground="white" inverted="true"></color>
    
      <root level="INFO">
        <appender-ref ref="CONSOLE"></appender-ref>
      </root>
    </configuration>
    

    En este ejemplo, definimos la propiedad LOG_LEVEL_PATTERN como %highlight(%5level). Luego, definimos un ConsoleAppender con withJansi configurado como true.

    Después de eso, definimos un elemento color para cada nivel que queremos personalizar. El atributo name especifica el nombre del nivel y el atributo foreground especifica el color a utilizar para ese nivel. Si el atributo inverted está configurado como true, los colores de primer plano y de fondo se invierten.

    Finalmente, establecemos el nivel del registrador raíz en INFO y agregamos el ConsoleAppender a él.

    Con esta configuración, los niveles se mostrarán en los colores que especificamos en los elementos color.

Comments are closed.