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

标签 java logging

我刚刚开始学习 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/

相关文章:

c++ - 在创建应用程序时记录应用程序的事件并使用 Visual Studio C++ 进行测试

java - 如何使用 Java 将图像转换为 base64 字符串?

java - @Schedules spring boot 错误

java - Java 管理类和接口(interface)

c# - 是否有可用于跟踪用户事件的框架?

shell - 如何将 Node 程序的任何输出存储到特定文件?

java - 查找元素的标题

java - Kotlin 需要 ViewHolder getter/setter 中的对象

Azure 函数配置可记录所有内容,无需对 Application Insights 进行任何采样

python - 在 Python 中重写 logging.Formatter