web-dev-qa-db-ja.com

intelliJのコンソールで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!");

構成ファイル(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>
9
user2962142

Log4j2の安定バージョン2.9.1を使用し、LOGGERの初期化を次のように置き換えます

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

コンソールアペンダーの強調表示に関する追加のドキュメント: https://logging.Apache.org/log4j/2.x/manual/layouts.html

3
gaurav

2.10.0ではデフォルトが壊れているようです。 disableAnsiオプションを追加することで、前回のリリースで色を取り戻すことができました。

<PatternLayout pattern="%highlight{...}" disableAnsi="false"/>

ドキュメントでは、デフォルトでfalseと言われていますが、そうではないようです。

31
namero999