2

这是一个愚蠢的简单示例,但由于某种原因它不起作用。我一定遗漏了一些明显的东西。

我正在尝试制作一个非常简单的 log4j 2.0 示例程序。我已将这两个 jar 添加到类路径中:

log4j-api-2.0-beta8.jar

log4j-core-2.0-beta8.jar

并使用默认配置完成了最简单的示例:

package testlog;


import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;


public class TestLog {

    static Logger logger = LogManager.getLogger(TestLog.class.getName());


    public static void main(String[] args) {

        logger.trace("Hello World");

        System.out.println("Test over");
    }
}

但是由于某种原因,我得到的只是“测试结束”,无论如何我都找不到Hello World。我找错地方了吗?我的理解是,使用默认配置,它应该打印到控制台,并带有“测试结束”。我已将日志级别更改为信息,仍然相同。我已经尝试将 Logger 功能提取到一个类中,仍然相同。我在 log4j 文档页面上关注本教程:

http://logging.apache.org/log4j/2.x/manual/configuration.html#AutomaticConfiguration

我不明白什么可能是错的。谁能阐明我做错了什么?提前致谢。

更新记录器确实可以使用 logger.error()。这意味着默认过滤器/级别有问题吗?

4

1 回答 1

11

您错过了文档中的那一行:

请注意,默认情况下 Log4j 将根记录器分配给 Level.ERROR。

做一个

logger.error("Hello World");

它会被显示出来。

如果要显示信息和/或跟踪级别,则必须配置记录器。

于 2013-08-20T14:48:06.160 回答