如何在intelliJ中控制台上的Log4j2输出着色?

use*_*142 8 colors log4j2

香港专业教育学院尝试将配置文件更改为如下所示,但仍然是输出为纯白色,如何将其更改为任何颜色?喜欢每个级别的不同颜色.

代码:

import org.apache.log4j.*;

public class StartUp {

    private static final Logger LOGGER = Logger.getLogger(Class.class.getName());

    public static void main(String[] args) throws Exception {

        LOGGER.trace("Trace Message!");
        LOGGER.debug("Debug Message!");
        LOGGER.info("Info Message!");
        LOGGER.warn("Warn Message!");
        LOGGER.error("Error Message!");
        LOGGER.fatal("Fatal Message!");
Run Code Online (Sandbox Code Playgroud)

配置文件(log4j2.xml):

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="CONSOLE" target="SYSTEM_OUT">
            <PatternLayout pattern="%highlight{[%d] - %msg%n}{FATAL=red blink, ERROR=red, WARN=yellow bold, INFO=black, DEBUG=green bold, TRACE=blue}"/>
        </Console>
    </Appenders>
    <Loggers>
        <Root level="ALL">
            <AppenderRef ref="CONSOLE"/>
        </Root>
    </Loggers>
</Configuration>
Run Code Online (Sandbox Code Playgroud)

nam*_*999 29

似乎某些默认值在2.10.0中被破坏了.通过添加disableAnsi选项,我可以在最后一个版本中获得颜色.

<PatternLayout pattern="%highlight{...}" disableAnsi="false"/>
Run Code Online (Sandbox Code Playgroud)

在文档中,它被认为是默认的,false但似乎并非如此.

  • Log4j 2.10中的默认值已更改,因为jansi中的本机代码导致某些用户出现问题.文档应该已经更新,但也许有些地方被遗漏了.你能在Log4j2问题跟踪器上提出一张票来修复文档吗?拉请求会更加棒极了. (2认同)

小智 8

对于 IntelliJ,我强烈推荐Grep Console Plugin

它可以解析控制台输出以获取日志等,而无需更改源代码。

在此输入图像描述


Ben*_*ied 6

我接受了问题和答案,并创建了一个类似于默认 logback 的彩色输出。

配置文件(log4j2.xml):

    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="WARN" monitorInterval="30">
        <Properties>
            <Property name="CLR">{FATAL=bright red, ERROR=red, WARN=bright yellow, INFO=Normal, DEBUG=white, TRACE=black}</Property>
            <Property name="LOG_PATTERN">
                %highlight{%5p- %d{yy-MM-dd HH:mm:ss.SSS}}${CLR} %clr{${sys:PID}}{magenta}%clr{-}{faint}%clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan}  %highlight{: %m%n%xwEx}${CLR}
            </Property>
        </Properties>
        <Appenders>
            <Console name="Console" target="SYSTEM_OUT" follow="true">
                <PatternLayout pattern="${LOG_PATTERN}" disableAnsi="false"/>
            </Console>
        </Appenders>
    
        <Loggers>
            <logger name="org.springframework.boot.autoconfigure.logging" level="info"/>
            <Root level="debug">
                <AppenderRef ref="Console"/>
            </Root>
        </Loggers>
    </Configuration>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述