2016-12-13 41 views
0

我已经把我的logging.properties具有以下并重新启动Tomcat的: com.example.handler.level = FINEST为什么信息记录但没有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,我看到日志消息正在写入。但是我没有看到第二条日志消息被打印出来。除了在属性文件中设置我需要担心的级别外,还有其他的东西吗?

UPDATE

我使用java.util.logging.Logger默认配置,据我所看到的。

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

+0

你应该给精度:记录您正在使用的库和日志配置。这可能有助于理解。 – davidxxx

+0

@davidxxx我编辑过,但使用java日志记录器,看起来像属性文件中的默认配置,而不是我添加的内容。 – buzzsawddog

+0

它不是直接的主题,但'java.util.logging'不一定是最好的选择。这不是非常有效,配置选项非常有限,并且它对于slf4J没有标准化。如果您有选择,请使用Logback或Log4J查看slf4J?无论如何,我只是做了一个答案。 – davidxxx

回答

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?

+0

谢谢,我还没有尝试过那里的所有东西,但是它确实让我们了解到发生了什么! – buzzsawddog

相关问题