Java Logger 不向控制台打印任何内容

新手上路,请多包涵

我刚刚开始学习 Java 中的 Logger;但是,我不明白它是如何工作的。

在我的类声明之后我有这段代码:

 private static final Logger LOGGER = Logger.getLogger(MyClass.class.getName());

然后在我的方法中,我像这样使用它(示例):

 LOGGER.log(Level.FINE, "Testing");
LOGGER.info("More testing...");

...
} catch(Exception e) {
    LOGGER.log(Level.SEVERE, e.toString(), e);
}

但是没有任何内容打印到控制台。它是保存在某个文件中还是我只是错误地使用了它?

如果它有所作为,我将 Eclipse Mars 2 与 Java 1.6.0_22 一起使用。

编辑:我正在使用 java.util.logging.Logger 库。

原文由 o.o 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
2 个回答

这是您应该知道的, java.util.Logging 由 JRE/lib 文件夹中名为 logging.properties 的根记录器文件控制,默认为 Level.INFO,因此默认情况下不显示 Fine 消息因为 FINE 低于 INFO,

  private static final Logger LOGGER = Logger.getLogger(MyClass.class.getName());

 Handler handlerObj = new ConsoleHandler();
 handlerObj.setLevel(Level.ALL);
 LOGGER.addHandler(handlerObj);
 LOGGER.setLevel(Level.ALL);
 LOGGER.setUseParentHandlers(false);

现在您可以很好地使用您的 LOGGER 对象并且应该可以工作。签出 Java 日志记录概述

 LOGGER.log(Level.FINEST, "finest");

请记住,将日志级别设置为 FINE 是有原因的,因此,降低级别也可能会从核心库中打印不必要的信息。让我知道是否有帮助。

问候道格拉斯

原文由 Zuko 发布,翻译遵循 CC BY-SA 3.0 许可协议

我的假设是您正在使用 Log4J。如果这是正确的,记录器应该默认保存到一个文件而不是打印到控制台(这通常是用 System.out.println(“message”) 完成的)。你有 log4j.properties 文件吗?

原文由 Agricola 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题