Java 9引入了一个新的记录器,即 java.lang.System.Logger ,但我们一直都有 java.util.logging.Logger

该记录器有什么新功能以及它有什么改进?

最佳答案

尽管它们之间可能存在细微的差异,但最重要的差异是System.Logger(在java.base模块中)是一个外观,而java.util.logging.Logger(在java.logging中)是一个实现。

这背后的核心思想是让库作者在其代码中编写无依赖日志记录,并让该库的每个用户提供自己喜欢的实现。这也意味着整个应用程序将使用相同的日志记录框架,而不必调整代码库中每个库的记录器。

从JDK 9开始,有可能在模块图中没有java.logging,这实际上使您可以释放所需的任何实现,而无需在JDK镜像中包含无用的软件包。如果存在java.logging,除非存在其他后端,否则它将用作默认后端。如果没有后端,它将只打印到System.err

09-03 20:09
查看更多