log4j2不写入控制台和文件
问题描述:
我是新的log4j2。我在eclipse中创建了一个非常简单的java项目来试用它。log4j2不写入控制台和文件
log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" >
<Properties>
<Property name="test">test</Property>
</Properties>
<ThresholdFilter/>
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d{dd MM yyyy HH:mm:ss,SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<File name="LogFile" fileName="test.log">
<PatternLayout>
<Pattern>%t %-5p %c{2} - %m%n</Pattern>
</PatternLayout>
</File>
</Appenders>
<Loggers>
<Root level="ERROR">
<AppenderRef ref="STDOUT" />
</Root>
<Logger name="tutorial" level="TRACE">
<Appender-Ref ref="STDOUT" />
<Appender-Ref ref="LogFile" />
</Logger>
</Loggers>
</Configuration>
Test.java
package tutorial;
public class Test {
private static final Logger logger = LogManager.getLogger(Test.class);
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(logger.getName());
logger.info("*****Testing*****");
logger.log(Level.WARN, "*****Testing*****");
}
}
运行Test.java
tutorial.Test
有控制台和日志中没有从log4j的日志记录在所有两个结果文件。日志文件test.log已创建,但其中有注释。任何一个有专业知识的人都能帮助解读这个谜团吗?
JDK:jdk1.8.0_92
log4j2:2.6.2
预先感谢您。
答
阈值过滤器log4j日志的原因未显示。
如果它不是必需的,那么你可以尝试删除下面的行。
<ThresholdFilter/>
+0
非常感谢你@Nikunj Shekhada。不知何故,我错过了那个标签,正在拉我的头发。 – thr3ad
我通常不使用xml来配置我的log4j,但它看起来像您的日志级别设置为错误,因此您的logger.info将不会打印。 – scrappedcola
嗨@scrappedcola,感谢您的快速回复。即使将根记录器级别更改为TRACE,我仍然没有从log4j获取日志输出。有什么想法吗? – thr3ad