我刚刚遇到如何做到这一点的示例
根据他们的文档,您需要:
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>