1

如何选择一个单独的 java.util.Logging.LogManager 实现供我的 Eclipse 插件使用,而不是由 Eclipse 的其余部分使用?

我的插件使用调用 LogManager.getLogManager() 的第三方库,所以我不能传递我自己的 LogManager 实例。

在执行 LogManager 类的静态初始化程序之前,可以通过 java 系统属性“java.util.logging.manager”选择 LogManager 实现,但是在激活我的插件之前很久,LogManager 类就由引导类加载器加载。

我正在考虑使用 Eclipse-BuddyPolicy 或 Bundle-ClassPath 来拥有一个自定义类加载器,它不会委托给引导类加载器,而是加载它自己的 java.util.Logging.LogManager 副本,但来自 java.*包通常不能由自定义类加载器加载。

4

1 回答 1

0

如果您可以解决JDK-6448699 LogManager 未正确加载日志处理程序JDK-6878454 LogManager 类加载与 Java EE 最佳实践不一致的问题,您的自定义类加载器想法可能会奏效。

LogManager 对于 JVM 来说应该是全局的。所以实际上你必须实现你自己的 LogManager 来做你想做的事情并让每个人都使用它。Eclipse、第 3 方库和您的插件不应该关心安装了哪个 LogManager。

于 2013-11-18T15:38:46.837 回答