我的应用程序包含jruby jar,其中包含jansi.jar
和ANSI转义的本机库。
当log4j2在类路径中注意到jansi.jar
时,它会尝试初始化ANSI转义日志记录。
但我不想要任何颜色日志。那么,如何配置log4j2以避免颜色日志?
这是我的模式表达式:
%d {yyyy-MM-dd} T%d {HH:mm:ss,SSS}%水平{length = 1}%-20t%-30F%m%xEx {short}%n
答案 0 :(得分:0)
根据Log4j2 manual,使用模式中的highlight
或style
关键字启用此着色功能,因此您的日志不应使用ANSI颜色,因为您的模式不包含此类关键词。你确定你在这里提供的模式是用于你的appender的吗?
您是否尝试使用%style{...}{Normal}
围绕您的模式以强制默认样式,即使ANSI转义模式已启用?像:
%style{%d{yyyy-MM-dd}T%d{HH:mm:ss,SSS} %level{length=1} %-20t %-30F %m%xEx{short}%n}{Normal}
虽然,您可能对本手册的评论感兴趣:
Windows上的ANSI样式
ANSI转义序列在许多平台上本机支持,但在Windows上默认不是。要启用ANSI支持,只需将Jansi jar添加到您的应用程序中,Log4j将在写入控制台时自动使用它。
请注意,如果没有控制台连接到您的进程,Log4j2 RC1现在不再自动使用ANSI转义(测试版中的错误):https://issues.apache.org/jira/browse/LOG4J2-413。
答案 1 :(得分:0)
我想出了这个问题。我正在使用一个使用ConsoleAppender的STDOUT写入。 在log4j2核心jar的2.0-rc1版本的ConsoleAppender L120中,log4j2查找jansi库。 我刚关闭了控制台日志来解决这个问题。