eclipse - 如何在 Eclipse RCP 应用程序中正确设置 Logback?

标签 eclipse eclipse-rcp slf4j logback

在过去的 2 或 3 天里,我一直试图让 Logback 在我的新 Eclipse RCP 项目中正常工作。 (我是第一次尝试 RCP,但在其他 java 项目中使用过 logback)。

我对你们所有人的问题是:“是否有一个简单的 Eclipse RCP (E4) 插件来启用 Logback 日志记录?是否应该使用这里的插件 (http://logback.qos.ch/p2/)?如果没有一个简单的插件可以使用,启用此日志记录的正确方法是什么?”

我已多次阅读此页面 ( http://devblog.virtage.com/2012/07/logback-and-eclipse-attaching-logback-xml/ ),看起来很有希望,但我一直无法让它发挥作用。

最佳答案

我已经设法获得了一个适用于 RCP 3.x 和 4.x 的 logback 工作配置。我正在与 Tycho 一起构建,并使用功能和产品来组装应用程序(有关详细信息,请参阅 Vogella tutorial)。步骤是:

  • 在您定义的插件(通常是包含您的应用程序的插件)中,向 ch.qos.logback.classic 和 ch.qos.logback.core 以及 org.slf4j.api 添加依赖项。所有其他插件只需要依赖 org.slf4j.api 来访问记录器。
  • 在包含定义插件的特性中,在包含的插件页面上添加 ch.qos.logback.slf4j 片段。没有这个,SLF4J 将无法在部署的产品中找到 Logback。
  • 在类路径中的某个定义插件中创建一个 logback.xml 文件(如果您使用 Tycho/Maven,则为 src/main/resources)。
  • 对于 e4 应用,添加生命周期管理器,并在其 @ProcessAdditions 方法中初始化 Logback:
    ILoggerFactory iLoggerFactory = LoggerFactory.getILoggerFactory();  
    LoggerContext loggerContext = (LoggerContext) iLoggerFactory;  
    loggerContext.reset();  
    JoranConfigurator configurator = new JoranConfigurator();  
    configurator.setContext(loggerContext);  
    try {  
      configurator.doConfigure(getClass().getResourceAsStream("/logback.xml"));  
    } catch (JoranException e) {  
      throw new IOException(e.getMessage(), e);  
    }  
    
  • 对于 Eclipse 3.x 应用程序,上述代码进入 start()您的应用程序插件的 Activator 的方法。

  • 您可能想要使用文件附加程序,因为除非您使用 -consoleLog 作为程序参数,否则不会显示标准输出。如果您将文件位置指定为 <file>${user.dir}/path/to/file</file> ,该文件将在应用程序安装目录中创建。通常,您会使用工作区元数据目录,以便它与 Eclipse 日志一起出现,例如<file>${user.dir}/workspace/.metadata/rcp.log</file> .

    关于eclipse - 如何在 Eclipse RCP 应用程序中正确设置 Logback?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19239443/

    相关文章:

    java - 完全不知道为什么 eclipse 会给出这个错误

    java - 强制 Eclipse 只显示错误

    java - 删除 View 上的最小化/最大化按钮

    java - logback 不同日志的相同时间戳

    java - 如何以编程方式设置 Spring Boot 的日志记录级别?

    c++ - 将成员枚举变量传递给类构造函数时出现无效重定义错误

    java - 将 WebView 保存状态传递给另一个 Activity

    java - 与 eclipse 相同的工作空间

    java - 无法将 Eclipse RCP 应用程序导出为产品

    tomcat - 无法从 logback.xml 文件加载 SLF4J 配置