这是一个非常简单的例子,但由于某种原因,它不起作用。我一定错过了一些明显的东西。
我正在尝试制作一个非常简单的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()。这意味着默认过滤器/级别没有问题?
答案 0 :(得分:11)
你错过了文档中的那一行:
请注意,默认情况下,Log4j会将根记录器分配给Level.ERROR。
做一个
logger.error("Hello World");
将会显示。
如果要显示信息和/或跟踪级别,则必须配置记录器。