Java 如何在Windows终端上使用Log4j2启用ANSI颜色?
与CMD和PowerShell不同,新版本支持开箱即用的ANSI颜色。快速测试程序可以确认一切正常:Java 如何在Windows终端上使用Log4j2启用ANSI颜色?,java,log4j,ansi-colors,Java,Log4j,Ansi Colors,与CMD和PowerShell不同,新版本支持开箱即用的ANSI颜色。快速测试程序可以确认一切正常: public class Color { public static void main(String[] args) { System.out.println("\u001b[32mHello, World\n\u001b[0m"); } } Log4j2似乎没有意识到这一点。我的PatternLayout中有以下序列: %highligh
public class Color {
public static void main(String[] args) {
System.out.println("\u001b[32mHello, World\n\u001b[0m");
}
}
Log4j2似乎没有意识到这一点。我的PatternLayout中有以下序列:
%highlight{%-5level}{FATAL=bg_red white, ERROR=red, WARN=yellow, INFO=green, DEBUG=blue}
这适用于macOS和Linux,但不适用于Windows。查看,我有disableAnsi
和noconsolenonansi
,但默认值似乎是我想要的,显式设置它们没有任何效果
我确实确保我的项目中包括了JANSI,尽管我认为这不必要,但这也没有任何区别
要使颜色正常工作,我缺少什么选项?根据,我使用了系统属性log4j.skipJansi
例如,在Gradle中,您可以修改测试任务的系统属性,如下所示(使用Kotlin DSL):
tasks.withType{
systemProperty(“log4j.skipJansi”、“false”)
}
//别忘了将jANSI添加到依赖项中
依赖关系{
:
api(group=“org.fusesource.jansi”,name=“jansi”,version=“1.18”)
}
tasks.withType<Test> {
systemProperty("log4j.skipJansi", "false")
}
// don't forget to add jANSI to your dependencies
dependencies {
:
api(group = "org.fusesource.jansi", name = "jansi", version = "1.18")
}