我刚刚开始学习 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
库。
最佳答案
这是您应该知道的,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 Logging Overview
LOGGER.log(Level.FINEST, "finest");
请记住,将日志级别设置为 FINE 是有原因的,因此,降低级别也可能会从核心库中打印不必要的信息。让我知道是否有帮助。
问候道格拉斯
关于Java Logger 不向控制台打印任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37713212/