idea中应用log4j2彩色日志

  • Post author:
  • Post category:其他


看到别人的控制台输出是那么美观,再看看自己的是那么凌乱。作为天秤座的一只小白,这怎么能忍受。。。于是,有了这篇log4j2的彩色日志。

先贴上测试结果:

首先,需要两个jar包。如果是maven工程,添加两个依赖。l

        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-1.2-api</artifactId>
            <version>2.0-rc1</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.25</version>
        </dependency>

接着添加配置文件,在resources下配置log4j2.xml文件。

<?xml version="1.0" encoding="UTF-8"?>

<configuration status="OFF">
    <appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%highlight{[%p] %-d{yyyy-MM-dd HH:mm:ss} --> %l%n[massage] %m%n}{FATAL=red, ERROR=red, WARN=yellow, INFO=cyan, DEBUG=cyan,TRACE=blue}"/>
        </Console>
    </appenders>
    <loggers>
        <root level="info">
            <appender-ref ref="Console"/>
        </root>
    </loggers>
</configuration>

具体的配置内容就不说了,网上一大推。简单解释一下这个xml。这个只配置了日志输出到控制台。


<root level=”info”>

有trace debug,info,warn,error,几个级别,建议配置info,这样大量的trace和debug信息就不会输出到控制台了。

支持彩色日志最关键的这一行配置:这是真正输出到控制台的内容格式配置。

<PatternLayout pattern="%highlight{[%p] %-d{yyyy-MM-dd HH:mm:ss} --> %l%n[massage] %m%n}{FATAL=red, ERROR=red, WARN=yellow, INFO=cyan, DEBUG=cyan,TRACE=blue}"/>

%p:信息级别

%d:时间,后面一串是日期格式

%l :输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数

%n: 换行


%m:最重要的一个,这代表真正的日志内容


%highlight:  重点来了,前面都是普通的日志配置,加上这个可以为每个级别定义自定义颜色,就是不同级别的信息,用不同的颜色显示。

{FATAL=red, ERROR=red, WARN=yellow, INFO=cyan, DEBUG=cyan,TRACE=blue}

这一行就是自定义颜色显示。

来个测试,写一个测试类:

import org.apache.log4j.Logger;

public class test {
    private static Logger logger = Logger.getLogger(test.class);

    public static void main(String[] args) {
        // 记录debug级别的信息
        logger.debug("This is debug message.");
        // 记录info级别的信息
        logger.info("This is info message.");
        // 记录error级别的信息
        logger.error("This is error message.");
        // 记录warn级别的信息
        logger.warn("This is warn message.");
    }
}

测试结果如文章开头。



版权声明:本文为qq_42058819原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。