有没有办法在LogBack中更改突出显示颜色模式

问题描述 投票:0回答:1
logback
1个回答
0
投票

我刚刚遇到如何做到这一点的示例

根据他们的文档,您需要:

  1. 将HighlightingCompositeConverterEx.java添加到CLASSPATH(或者只是将其添加到您的项目中)
  2. 使用
  3. 在 logback.xml 中加载转换器类
  4. 中使用您的转换词(示例中的highlightex)
package code.nighma.logging.utils;

import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.pattern.color.ANSIConstants;
import ch.qos.logback.core.pattern.color.ForegroundCompositeConverterBase;

public class LogbackHighlightCompositeConverterEx extends ForegroundCompositeConverterBase<ILoggingEvent> {

  @Override
  protected String getForegroundColorCode(ILoggingEvent event) {
    Level level = event.getLevel();
    return switch (level.toInt()) {
      case Level.ERROR_INT -> ANSIConstants.BOLD + ANSIConstants.RED_FG;
      case Level.WARN_INT -> ANSIConstants.BOLD + ANSIConstants.MAGENTA_FG;
      case Level.INFO_INT -> ANSIConstants.BOLD + ANSIConstants.CYAN_FG;
      case Level.DEBUG_INT -> ANSIConstants.BOLD + ANSIConstants.YELLOW_FG;
      case Level.TRACE_INT -> ANSIConstants.BOLD + ANSIConstants.WHITE_FG;
      default -> ANSIConstants.BOLD + ANSIConstants.DEFAULT_FG;
    };
  }
}

然后你的配置 xml 将如下所示

<configuration>

  <conversionRule conversionWord="highlightex" converterClass="code.nighma.logging.utils.HighlightingCompositeConverterEx"/>

  <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
      <Pattern>%green(%d{ISO8601}) [%blue(%t)] %highlightex(%-5level) %yellow(%C{5}): %msg%n%throwable</Pattern>
    </layout>
  </appender>

  <root level="info">
    <appender-ref ref="Console"/>
  </root>

  <logger name="code.nighma" level="trace" additivity="false">
    <appender-ref ref="Console"/>
  </logger>

</configuration>
© www.soinside.com 2019 - 2024. All rights reserved.