我曾尝试将配置文件更改为如下所示,但仍然是输出为纯白色,如何将其更改为任何颜色?喜欢每个级别的不同颜色。
代码:
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>
答案 0 :(得分:23)
似乎某些默认值在2.10.0中被破坏了。通过添加=>
选项,我可以在最后一个版本中获得颜色。
disableAnsi
在文档中,据说默认为<PatternLayout pattern="%highlight{...}" disableAnsi="false"/>
,但似乎并非如此。
答案 1 :(得分:1)
使用log4j2的稳定版本2.9.1并用
替换LOGGER初始化private static final Logger LOGGER = LogManager.getLogger(Class.class.getName());
有关突出显示控制台appender的其他文档: https://logging.apache.org/log4j/2.x/manual/layouts.html
答案 2 :(得分:0)
我将尝试为该问题积累解决方案,如果我再三表示歉意。 在控制台中启用日志颜色应采取的措施(仅对自2.10起的lo4j2版本有效,因为默认情况下jansi已禁用)
1)添加jansi依赖项:
<dependency>
<groupId>org.fusesource.jansi</groupId>
<artifactId>jansi</artifactId>
<version>1.16</version>
</dependency>
2)添加VM选项:-Dlog4j.skipJansi = false
3)并且不要忘记在模式内添加%highlight(下面的Yaml示例):
Configuration:
Appenders:
Console:
PatternLayout:
pattern: '%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight{%-5level}{STYLE=Logback} %logger.%M - %msg%n'
答案 3 :(得分:0)