【问题标题】:log4j2 not writing to both Console and Filelog4j2 不写入控制台和文件
【发布时间】:2016-09-25 01:31:30
【问题描述】:


我是 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

提前谢谢你。

【问题讨论】:

  • 我一般不使用 xml 来配置我的 log4j,但看起来你的日志级别设置为错误,所以你的 logger.info 不会打印。
  • 嗨@scrappedcola,感谢您的快速回复。即使将根记录器级别更改为 TRACE,我仍然没有从 log4j 获取日志输出。有什么想法吗?

标签: log4j2


【解决方案1】:

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

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

<ThresholdFilter/>

【讨论】:

  • 非常感谢@Nikunj Shekhada。不知何故,我错过了那个标签并且正在拉扯我的头发..
猜你喜欢
  • 1970-01-01
  • 2017-08-27
  • 2017-09-30
  • 1970-01-01
  • 2020-04-10
  • 2019-09-16
  • 1970-01-01
  • 2013-09-09
  • 1970-01-01
相关资源
最近更新 更多