如何指定用于Java Webstart应用程序的logback配置?

时间:2014-07-28 18:00:14

标签: java java-web-start logback

我想将日志记录添加到许多内部Java webstart应用程序中,最好使用logback日志框架和logback.groovy配置文件。我希望在webstart应用程序.jnlp文件中指定此内容,但不清楚如何执行此操作。

我尝试在主jar的资源中添加logback.groovy文件(即包含我的main方法的文件),但是没有通过logback获取。

我还尝试过将logback.groovy文件添加到<resources>文件的.jnlp部分的各种尝试:

<jnlp ...>
  <resources>
    <j2se version="$j2seVersion" />
    $dependencies // from maven-webstart-plugin

    // some reference to my logback configuration - e.g. 
    <dir href="log/" />
  </resources>
</jnlp>

值得注意的是,logback期望配置文件在类路径中被引用为它所在的文件夹,而不是文件本身 - 请参阅FAQs

但是,我真的不确定这将如何适用于Java Webstart。

这可能吗?如果是这样,我该怎么做?

1 个答案:

答案 0 :(得分:0)

所以...我最终使用的方法是(与Askel的评论一致)将logback.groovy配置文件放入/src/main/resources

但是,我们以多种不同的方式使用我们的Java库,并且我不希望默认情况下在jar中包含logback配置文件。在某种程度上,这是因为我们有几个库,并且logback不能很好地与多个配置文件一起使用。另外,根据版本的不同,我想使用不同的logback配置。

对于我们的webstart版本,我们使用webstart-maven-plugin来构建库,组装依赖项等。但进行此构建之前,我们将logback.groovy配置文件复制到/src/main/resources - 这包括该库的构建中的文件。然后,构建/发布之后,您可以从/src/main/resources中删除配置文件。

但是,此插件还将运行mvn install,这会将库的logback配置文件放在本地maven存储库中。因此,删除构建/发布/临时配置之后,我们会执行另一个mvn clean install,这将覆盖该库。