【问题标题】:Why is INFO logged but not FINEST为什么记录了 INFO 但不是 FINEST
【发布时间】:2016-12-13 18:53:51
【问题描述】:

我已将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

更新 我一直在玩这个,似乎如果我更改为Level.FINE 他们会登录。也许有什么地方过滤掉了过高的日志?

【问题讨论】:

  • 您应该给出精确度:您正在使用的日志库和日志配置。这可能有助于理解。
  • @davidxxx 我编辑了,但使用 java 日志记录器,除了我添加的之外,属性文件中的默认配置看起来像默认配置。
  • 不是直接主题,但java.util.logging不一定是最佳选择。它效率不高,配置选项非常有限,并且对于 slf4J 来说不是标准化的。如果你有选择,看看 slf4J 和 Logback 还是 Log4J ?不管怎样,我只是做了一个回答。
  • @davidxxx 目前在游戏中切换记录器不是我能做的。稍后我会将其提交给团队以供以后发布:-) 感谢您的回答,我在那里找到了更多信息。

标签: java tomcat logging


【解决方案1】:

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

该处理程序使用的默认级别是 Level.INFO。 http://docs.oracle.com/javase/6/docs/api/java/util/logging/ConsoleHandler.html

使用默认级别为Level.ALL的FileHandler,您不会遇到问题。

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

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

【讨论】:

  • 谢谢,我还没有尝试过里面的所有东西,但它确实让我很清楚发生了什么!
猜你喜欢
  • 2011-05-12
  • 1970-01-01
  • 2019-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多