放牧代码和思想
专注自然语言处理、机器学习算法
    This thing called love. Know I would've. Thrown it all away. Wouldn't hesitate.

Log4j 2配置与IntelliJ IDEA控制台颜色

目录

准备开一大项目的话,日志系统必不可少。Log4j是Java平台上最好的日志组件了,Log4j 2升级了不少API,拓展性更好。

Log4j 2安装

需要两个Jar即可:log4j-api-2.0-rc1.jar和log4j-core-2.0-rc1。像我这样的强迫症患者还得捎上doc和sources才行。

最简单的一个测试

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
 
public class HelloWorld {
    private static Logger logger = LogManager.getLogger("HelloWorld");
    public static void main(String[] args) {
        logger.debug("Will not show.");
        logger.error("Hello, World!");
    }
}

即可在控制台看到

20:35:34.712 [main] ERROR com.hankcs.Main - Hello, World!

配置文件log4j2.xml

默认的配置只将ERROR及以上级别的日志输出到控制台,可以通过在根目录建立一个log4j2.xml来自定义它:

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF">
    <appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
    </appenders>
    <loggers>
        <root level="trace">
            <appender-ref ref="Console"/>
        </root>
    </loggers>
</configuration>

然后来一段复杂一点的测试:

package com.hankcs;

import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;

public class Main
{
    public static org.apache.logging.log4j.Logger logger = LogManager.getLogger();
    public static void main(String[] args)
    {
        add(1, 2);
    }

    public static int add(int a , int b)
    {
        logger.entry(a, b);
        logger.info("我是info信息");
        logger.warn("我是warn信息");
        logger.error("我是error信息");
        logger.fatal("我是fatal信息");
        logger.printf(Level.TRACE, "%d+%d=%d", a, b, a + b);
        logger.exit(a + b);
        return a + b;
    }
}

输出:

20:39:35.937 [main] TRACE com.hankcs.Main - entry params(1, 2)
20:39:35.938 [main] INFO  com.hankcs.Main - 我是info信息
20:39:35.938 [main] WARN  com.hankcs.Main - 我是warn信息
20:39:35.938 [main] ERROR com.hankcs.Main - 我是error信息
20:39:35.938 [main] FATAL com.hankcs.Main - 我是fatal信息
20:39:35.939 [main] TRACE com.hankcs.Main - 1+2=3
20:39:35.939 [main] TRACE com.hankcs.Main - exit with(3)

真优雅!

Log4j 2自定义配色

如果是eclipse的话,大概还能在控制台显示出不同的颜色吧,可惜IntelliJ IDEA的控制台不支持ASCII颜色。但是可以通过一个控制台配色插件Grep Console来实现,安装后更改配置为:

然后修改配置文件log4j2.xml为:

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF">
    <appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%highlight{%d{HH:mm:ss.SSS} %-5level %logger{36}.%M() @%L - %msg%n}{FATAL=Bright Red, ERROR=Bright Magenta, WARN=Bright Yellow, INFO=Bright Green, DEBUG=Bright Cyan, TRACE=Bright White}"/>
        </Console>
    </appenders>
    <loggers>
        <root level="trace">
            <appender-ref ref="Console"/>
        </root>
    </loggers>
</configuration>

运行效果很美观:

这里我为每种颜色都加了Bright属性,不然的话字体不一样会很难受的。自定义颜色请参考http://logging.apache.org/log4j/2.x/manual/layouts.html

知识共享许可协议 知识共享署名-非商业性使用-相同方式共享码农场 » Log4j 2配置与IntelliJ IDEA控制台颜色

评论 6

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #5

    求你的颜色配置截图……

    Jerry8年前 (2016-06-28)回复
  2. #4

    你这idea主题叫什么啊?

    l2588年前 (2015-12-04)回复
  3. #3

    颜色设置支持windows吗?

    guest9年前 (2015-08-07)回复
  4. #2

    有颜色的效果是怎么配置的?

    昭哥9年前 (2015-05-02)回复
  5. #1

    有颜色的效果是怎么配置的?

    昭哥9年前 (2015-05-02)回复

我的作品

HanLP自然语言处理包《自然语言处理入门》