令人难以置信的简单Log4j 2.0示例不起作用

时间:2013-08-20 14:41:03

标签: java logging log4j2

这是一个非常简单的例子,但由于某种原因,它不起作用。我一定错过了一些明显的东西。

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

的log4j-API-2.0-beta8.jar

的log4j核-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,无论如何我都能找到。我在找错了地方吗?我的理解是,使用默认配置,它应该通过'Test Over'打印到控制台。我已将日志级别更改为info,仍然相同。我已经尝试将Logger功能拉出到一个类中,仍然是相同的。我在log4j文档页面上关注本教程:

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

我无法理解可能出错的地方。谁能说清楚我做错了什么呢?提前谢谢。

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

1 个答案:

答案 0 :(得分:11)

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

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

做一个

logger.error("Hello World");

将会显示。

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