我对 java Logger 有点迷茫
private static Logger logger = Logger.getLogger("order.web.OrderManager");
logger.info("Removed order " + id + ".");
我在哪里可以看到日志?这也是来自 java.util.logging.Logger 库的引用:
在每次日志记录调用中,Logger 最初针对记录器的有效日志级别执行请求级别(例如 SEVERE 或 FINE)的廉价检查。如果请求级别低于日志级别,则日志调用立即返回。
通过此初始(廉价)测试后,Logger 将分配一个 LogRecord 来描述日志消息。然后它将调用过滤器(如果存在)来更详细地检查是否应发布记录。如果通过,它将发布 LogRecord 到它的输出处理程序。
这是否意味着如果我有 3 request level
日志:
logger.log(Level.FINE, "Something");
logger.log(Level.WARNING, "Something");
logger.log(Level.SEVERE, "Something");
我的 log level
是严重的,我可以看到所有三个日志,如果我的 log level
是警告,那么我看不到严重的日志,对吗?我该如何设置 log level
?
原文由 Thang Pham 发布,翻译遵循 CC BY-SA 4.0 许可协议
在日志文件或标准输出中,具体取决于您的实际日志处理程序配置。这可以通过属性文件或直接通过日志记录 API 进行设置。
SEVERE
是最重要的(最高优先级)和FINE
是示例中显示的 3 种最不重要的消息类型。因此,如果您的日志级别是SEVERE
,则只会记录SEVERE
消息。如果级别是FINE
,则记录所有 3 条消息。这在实际生产环境中非常有用,您可能只想记录错误和可能的警告(希望它们很少见,但您想了解它们),因此您可以将日志级别设置为
WARNING
。然而,在您的开发环境中,例如在调试问题时,您希望在日志中查看所有信息,即使它会创建大量日志数据并降低应用程序的速度。因此,您将日志级别设置为FINE
或FINEST
。Here 是 对 Java Logging 的一个很好的介绍。
更新: 上面页面中的一个简单示例,用于将记录器配置为记录到
FINEST
级别的文件:要登录到控制台,请将上面的
FileHandler
替换为ConsoleHandler
:这只是一个示例 - 在实际应用程序中,最好通过配置属性文件配置日志记录。