如何使用log4j2高亮模式打印彩色日志?

时间:2015-02-19 10:39:25

标签: java logging configuration log4j2

我是log4j2的新手。我想为不同级别打印不同颜色的日志。我使用eclipse ide开发java,使用log4j2进行应用程序日志记录。 这是我的log4j2.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
  <Appenders>
   <Console name="STDOUT" target="SYSTEM_OUT">
     <PatternLayout pattern="%highlight{%d{HH:mm:ss.SSS} %-5level %logger{36}.%M() @%L - %msg%n}{FATAL=red, ERROR=red, WARN=yellow, INFO=black, DEBUG=green, TRACE=blue}"/>
   </Console>
  </Appenders>
   <loggers>
  <Logger name="org.apache.log4j.xml" level="all"/>
    <root level="all">
      <appender-ref ref="STDOUT"/>
    </root>
  </loggers>
</Configuration>

当我执行log4j2示例时,我在eclipse控制台中得到了以下结果。

[32m15:56:30.536 DEBUG com.syn.test.Test.main() @15 - this is debug message
[m[32m15:56:30.539 DEBUG com.syn.test.Test.main() @19 - this is debug messge 
[m

现在我的问题是如何在eclipse控制台中为不同级别打印不同颜色的日志。

3 个答案:

答案 0 :(得分:3)

高亮和颜色语法适用于大多数unix和mac终端,但显然不在Windows DOS控制台中(根据http://en.wikipedia.org/wiki/ANSI_escape_code)。

不幸的是,我非常怀疑Eclipse控制台支持使用ANSI转义码突出显示颜色。

更新: Jansi可以支持Windows颜色: http://jansi.fusesource.org/

答案 1 :(得分:2)

Eclipse市场的ANSI控制台插件完成了这项工作。 它工作得很好,你可以在Windows和Windows上看到颜色的日志。 Unix的

答案 2 :(得分:0)

我使用IntelliJ IDEAjcabi-log上取得了成功。

Maven依赖项:

<dependency>
  <groupId>com.jcabi</groupId>
  <artifactId>jcabi-log</artifactId>
  <version>LATEST</version>
</dependency>

示例PatternLayout

<PatternLayout pattern="%d{HH:mm:ss.SSS} [%highlight{%level}{FATAL=bg_red, ERROR=red, WARN=yellow, INFO=green, DEBUG=blue}] [%t]: %logger{36}.%M@L%L - %msg%n" disableAnsi="false"/>

保留disableAnsi="false"属性以使颜色起作用很重要。