我一直在使用log4j 2(2.7),并且在我不得不重新安装IDE(Eclipse Neon J2EE版)之前它运行良好。 现在我只将日志记录到日志文件中,而不是登录到控制台。 这是我的log4j2.xml文件:
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<File name="log" fileName="target/test.log" append="true">
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M %msg%xEx%n"/>
</File>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="Console"/>
</Root>
<Root level="TRACE">
<AppenderRef ref="log" />
</Root>
</Loggers>
正如我所说,对日志的输出效果很好。
答案 0 :(得分:1)
尝试仅宣告Root
一次。
示例:强>
<Loggers>
<Root>
<AppenderRef ref="Console" level="error"/>
<AppenderRef ref="log" level="trace"/>
</Root>
</Loggers>
答案 1 :(得分:1)
我同意Sazzad的回答:你只能有一个根记录器。我建议在根记录器上指定一个级别,并仅在需要它的AppenderRef上覆盖该级别。所以:
<Loggers>
<Root level="trace">
<AppenderRef ref="Console" level="error"/>
<AppenderRef ref="log"/>
</Root>
</Loggers>
此外,不确定是仅从问题还是从实际配置文件中省略了这一点,但配置确实应该从<Configuration>
开始并以</Configuration>
元素结束。