简介
添加一些颜色可以使日志更易于阅读。
在本文中,我们将了解如何为控制台的日志添加颜色。
在开始之前,我们需要知道,Eclipse 控制台中只支持部分颜色的设置。 Eclipse 中的控制台不支持由 Java 代码设置颜色,因此本文中介绍的解决方案在 Eclipse 控制台中不起作用,代码在IDEA演示。
2. 如何使用 ANSI 代码对日志进行颜色设置
实现彩色日志记录的最简单方法是使用 ANSI 转义字符,通常称为 ANSI 代码。
ANSI 代码是一些终端解释为命令的特殊字节序列。
让我们打印一个 ANSI 代码:
System.out.println("我是文本");
System.out.println("\u001B[31m" + "我是红色文本");
在输出中,我们看到 ANSI 代码没有打印出来,字体颜色变成了红色:
注意,我们需要确保在完成日志打印后重置字体颜色。
很简单, 我们可以通过打印\u001B[31m,即ANSI复位命令。
重置命令会将控制台重置为其默认颜色。 不一定是黑色,它可以是白色或控制台配置的任何其他颜色。 例如:
System.out.println("我是文本");
System.out.println("\u001B[31m" + "我是红色文本" + "\u001B[0m"+"清除颜色开始");
System.out.println("现在没有颜色了");
输出结果:
大多数日志库都支持 ANSI 代码,这使我们能够构建一些丰富多彩的日志器。
例如,我们可以快速构建一个日志器,为不同的日志级别设置不同的颜色。
private static final Logger LOGGER = LoggerFactory.getLogger(ConsoleCorlor20221022.class);
public void logDebug(String logging) {
LOGGER.debug("\u001B[34m" + 打印日志 + "\u001B[0m");
}
public void logInfo(String logging) {
LOGGER.info("\u001B[32m" + 打印日志 + "\u001B[0m");
}
public void logError(String logging) {
LOGGER.error("\u001B[31m" + 打印日志 + "\u001B[0m");
}
可以看到,控制台输出不同颜色的日志级别,使我们的日志更具可读性:
此外,ANSI 代码可用于控制的不仅仅是字体颜色——我们可以控制背景颜色、字体粗细和样式。