java - Log4j2 - 找到配置,但无法正常工作

标签 java logging log4j2

Log4j 正在查找我的配置,因为一旦我删除它,我就会收到一条错误消息,指出它找不到配置,但记录时不会反射(reflect)它的属性。

log4j2.属性:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="TRACE">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

测试.java:

public class Test {

    private static Logger logger = LogManager.getLogger(Test.class);

    public static void main(String[] args) throws Exception {
        logger.info("test");
        logger.fatal(logger.getLevel());
    }

}

输出:

20:19:31.848 [main] FATAL io.rj93.sarcasm.examples.CnnSentenceClassificationExample - ERROR

正如您所看到的,当记录器设置为 INFO 时,它返回的级别为 ERROR,并且时间格式包括毫秒,即使它已被删除。

配置文件取自 log4j 网站,仅进行了微小的更改(提到的两个,以及 status="TRACE")

我使用的是2.8.1版本。

最佳答案

您使用一个 log4j2.properties 文件,其中包含 XML 配置。
不一致。
log4J 初始化无法识别用作属性格式的格式。因此它使用默认的 log4J 配置来为根记录器指定 ERROR 级别。

只需将 log4j2.properties 重命名为 log4j2.xml 就可以了。

关于java - Log4j2 - 找到配置,但无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43400196/

相关文章:

java - 从 Java 代码调用 Spring Scheduler 执行

postgresql - PostgreSQL 未显示 RDS 日志记录

log4j - 如何在 log4j 2 中针对 MDC key 设置默认值?

java - Log4j2 RollingFile 不工作

java - Sun Java 系统门户服务器 7.1

java - 在实体内增加值(likeCount)而不会遇到并发问题

node.js - 在 Koa 应用程序中从日志文件中过滤密码的最佳方法是什么?

java - 在加载 Java 小程序期间记录丢失的 jar 文件

java - liberty 配置文件配置问题 (log4j2)

java - Android 中的流线型 xml 生成器/解析器?