将您的文件和配置加载到我的计算机上是有效的。
这是我使用的类:
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class Test
{
private final Logger logger = LogManager.getLogger(Test.class);
public Test(String serialPortName) {
System.out.println(logger.isInfoEnabled());
logger.entry();
logger.info("info! {}", serialPortName);
logger.error("error! {}", serialPortName);
logger.debug("debug! {}", serialPortName);
}
public static void main(String args[])
{
Test h1 = new Test("1001");
}
}
这是log4j2.xml文件:
<ThresholdFilter level="all"/>
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p method: [%t] %C{2} (%F:%L) - %m%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="all">
<AppenderRef ref="STDOUT"/>
</Root>
</Loggers>
最后,这是输出结果:
true
2014-05-29 12:19:15,266 TRACE method: [main] Test (Test.java:10) - 进入
2014-05-29 12:19:15,268 INFO method: [main] Test (Test.java:11) - 信息!1001
2014-05-29 12:19:15,269 ERROR method: [main] Test (Test.java:12) - 错误!1001
2014-05-29 12:19:15,269 DEBUG method: [main] Test (Test.java:13) - 调试!1001
使用Log4j2时常见的一个错误是将log4j2.xml放在不在类路径中的文件中。
为了诊断是否存在该问题,请更改行。
logger.info("Opening serial port {}", serialPortName)
为了
logger.error("Opening serial port {}", serialPortName);
如果你看到任何输出,那是因为log4j无法加载你的文件。这是因为当文件未找到时,默认日志级别是ERROR,而不是DEBUG。
我的项目(Maven)中log4j2.xml的位置在src/main/resources中,我知道它在我的类路径中。