log4j2没有写入Console和File

时间:2016-09-25 01:31:31

标签: log4j2


我是log4j2的新手。我在eclipse中创建了一个非常简单的java项目来试试。

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

提前谢谢。

1 个答案:

答案 0 :(得分:1)

不显示阈值过滤器log4j日志的原因。

如果不需要,那么您可以尝试删除以下行。

<ThresholdFilter/>