为什么记录INFO但不记录FINEST

时间:2016-12-13 18:53:52

标签: java tomcat logging

我已将logging.properties设置为以下内容并重新启动tomcat: com.example.handler.level = FINEST

我有一个方法:

public SearchHistoryItem getSearchHistoryItem(Api1 api1, String stringId, String resultId) {
    SearchHistoryItem item = api1.getSearchHistoryDetails(stringId, resultId);
    Level level = logger.getLevel();
    logger.log(Level.INFO, "Log level is: " + level);
    logger.log(Level.FINEST, "item is: " + item);
    return item;
  }

返回以下内容: 13-Dec-2016 18:32:53.093 INFO [ajp-nio-127.0.0.1-8009-exec-4] com.example.handler.SomeHandler.getSearchHistoryItem Log level is: FINEST

如果你注意到。第一条日志消息打印出我要查找的内容。所以我看到日志确实是FINEST,我看到正在编写日志消息。但是,我没有看到第二条日志消息。除了在属性文件中设置我需要担心的级别之外还有其他什么吗?

更新

据我所见,我正在使用java.util.logging.Logger默认配置。

UPDATE 我一直在玩这个,似乎如果我改为Level.FINE他们会记录。也许有些地方可以过滤掉那些很高的日志?

1 个答案:

答案 0 :(得分:1)

我想你的问题在于控制台中的日志。

该Handler使用的默认级别为Level.INFO。 http://docs.oracle.com/javase/6/docs/api/java/util/logging/ConsoleHandler.html

使用FileHandler,其默认级别为Level.ALL,您可能没有遇到此问题。

要么以编程方式设置ConsoleHandler的级别,要么在配置文件中设置它(https://docs.oracle.com/cd/E19717-01/819-7753/gcblo/

这篇文章提供了有关该问题的更多详细信息: Why are the Level.FINE logging messages not showing?