如何在log4j2中禁用ANSI转义(颜色记录)

时间:2014-04-14 18:45:48

标签: log4j2

我的应用程序包含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

2 个答案:

答案 0 :(得分:0)

根据Log4j2 manual,使用模式中的highlightstyle关键字启用此着色功能,因此您的日志不应使用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库。 我刚关闭了控制台日志来解决这个问题。