我的应用程序包含jruby,它包含jansi.jar和用于ANSI转义的本机库。
当log4j2注意到类路径中的jansi.jar时,它尝试初始化ANSI转义日志记录。但我不想要任何颜色的原木。那么,如何配置log4j2以避免颜色日志?
这是我的模式表达式:
%d{yyyy}t%d{HH:mm:ss,SSS} %水平{length=1} %-20t %-30F %m%xEx{short}%n
发布于 2014-04-15 19:46:58
根据Log4j2手册,这个着色特性是使用模式中的highlight或style关键字启用的,因此您的日志不应该使用ANSI颜色,因为您的模式不包含这样的关键字。你确定你在这里给出的图案是用于你的附件的吗?
您是否尝试过用%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添加到您的应用程序中,Log4j将在写入控制台时自动使用它。
请注意,如果您的进程没有附加控制台,Log4j2 RC1现在不再自动使用ANSI转义(在beta版本中是一个bug ):https://issues.apache.org/jira/browse/LOG4J2-413。
发布于 2014-05-09 18:25:30
我解决了这个问题。我用的是STDOUT的一篇文章,它使用ConsoleAppender。在2.0-rc1版本的ConsoleAppender L120内核jar中,log4j2查找jansi库。为了解决这个问题,我关闭了控制台日志记录。
https://stackoverflow.com/questions/23067826
复制相似问题