在Java 9中,可以使用Platform Logging API通过服务接口为消息的使用者记录消息。 通过使用System ClassLoader,已在java.util.ServiceLoader API的帮助下加载了LoggerFinder的实现。 基于此实现,应用程序可以插入其自己的外部日志记录后端,而无需配置java.util.logging。
我们可以将类名或模块传递给LoggerFinder, 以便它知道要返回哪个记录器。
public class MyLoggerFinder extends LoggerFinder { @Override public Logger getLogger(String name, Module module) { //返回记录器取决于名称/模块 } }
如果找不到具体的实现,则使用默认的 LoggerFinder 实现。我们得到的已经从创建记录器LoggerFinder 使用工厂 方法 的的系统 类。
public class System { System.Logger getLogger(String name) { } System.Logger getLogger(String name, ResourceBundle bundle) { } }