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/