java - log4j 2 向控制台附加程序添加多种颜色

标签 java xml jakarta-ee log4j2

您好,我刚刚下载并配置了 log4j-2。我坚持将颜色代码应用于 SlowConsole 控制台附加程序。我的控制台附加程序如下所示。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n"/>
        </Console>
        <Console name="SlowConsole" target="SYSTEM_OUT">
            <PatternLayout pattern="%highlight{%d{HH:mm:ss.SSS} %-5level %logger{36}.%M() @%L - %msg%n}{FATAL=red, ERROR=red, WARN=yellow, INFO=black, DEBUG=green, TRACE=blue}"/>
        </Console>
        <File name="File" fileName="C:\log\out.txt">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n" />
        </File>
    </Appenders>
    <Loggers>
        <logger name="org.abc.ea.web" level="ALL" additivity="false">
            <!--Log4j for the WEB MODULE -->
            <appender-ref ref="SlowConsole"/>
        </logger>
        <logger name="org.abc.ea.ejb" level="ALL" additivity="false">
            <!--Log4j for the EJB MODULE -->
            <appender-ref ref="SlowConsole"/>
        </logger>
        <Root level="ERROR">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="File" />
        </Root>
    </Loggers>
</Configuration>

我有两个问题,

  1. 我是 log4j 的新手,这是编写 xml 配置文件的正确方法吗?

  2. 如何为每个日志级别添加两个颜色代码?

    例如:DEBUG=green -> 将输出浅绿色字体,但我需要它是 dimbold

最佳答案

我想我找到了解决方案。我下载了 log4j2-core-sources.jar 并追踪了 source .你可以这样写;

<Console name="SlowConsole" target="SYSTEM_OUT">
     <PatternLayout disableAnsi="false"  pattern="%highlight{%d{HH:mm:ss.SSS} %-5level %logger{36}.%M() @%L - %msg%n}{FATAL=red blink, ERROR=red, WARN=yellow bold, INFO=black, DEBUG=green bold, TRACE=blue}"/>
</Console>

我认为 log4j2 documentation并且其示例可能需要更新。

关于java - log4j 2 向控制台附加程序添加多种颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21979699/

相关文章:

java - 如何在新系统上使用 Java 安装 Selenium 并使用 Jenkins 作为 CI 生成正确的测试报告

java - 在java和android中读取位图像素颜色?

java - 如何创建一个适用于两个不同对象的基类?

excel - VBA Excel : Loop through XML Attributes

xml - XSLT 从子目录转换多个文件

xml - 如何获取可能在另一个节点中的正在进行的项目?

java - 使用 EJB3 时什么时候必须使实体可序列化?

java - 如何在加载父页面之前加载子页面?

java - 通过 http post 下载文件将返回 zip 文件内容

java - 为什么 hello world 在 Spring 中不显示并出现异常?