Log4j 2控制台输出停止工作

时间:2016-12-01 10:48:33

标签: log4j2

我一直在使用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>

正如我所说,对日志的输出效果很好

2 个答案:

答案 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>元素结束。