【问题标题】:Separate LogManager per Eclipse plugin?每个 Eclipse 插件单独的 LogManager?
【发布时间】:2013-11-17 18:35:24
【问题描述】:

如何选择一个单独的 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.* 包通常不能被自定义类加载器加载。

【问题讨论】:

    标签: osgi classloader eclipse-plugin java.util.logging


    【解决方案1】:

    如果您能绕过JDK-6448699 LogManager does not load log handler correctlyJDK-6878454 LogManager class loading inconsistent with Java EE best practices,您的自定义类加载器想法可能会奏效。

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

    【讨论】:

      猜你喜欢
      • 2020-01-02
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      • 2013-08-12
      • 1970-01-01
      • 2023-03-23
      • 2011-02-22
      • 1970-01-01
      相关资源
      最近更新 更多