【问题标题】:Incredibly simple Log4j 2.0 example not working非常简单的 Log4j 2.0 示例不起作用
【发布时间】:2013-08-20 14:41:03
【问题描述】:

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

我正在尝试制作一个非常简单的 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 确实可以使用 logger.error()。这是否意味着默认过滤器/级别没有问题?

【问题讨论】:

    标签: java logging log4j2


    【解决方案1】:

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

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

    做一个

    logger.error("Hello World");
    

    它会被显示出来。

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

    【讨论】:

    • 太棒了!非常感谢。我的问题的解决方案是停止做一个不耐烦的白痴,然后向下滚动。我会去把头埋在沙子里,直到每个人都停止笑。再次感谢,+1 并接受。
    猜你喜欢
    • 2016-03-26
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多