2

我已将我的项目迁移到 0.13.5 并开始使用xsbt-web-plugin

我想将 logback 配置为使用由系统属性设置的类路径之外的配置文件logback.configurationFile(因此我可以将 logconfig 保留在 war 文件之外)。

以前我会简单地设置:

System.setProperty("logback.configurationFile", "/some/path/logback.xml")

在里面project/build.scala和 logback 会捡起它。

但是,在将 sbt 升级到 0.13.5 并迁移到 sbt 中设置的 xsbt-web-plugin 系统属性后,在运行时(jetty)似乎不可用。

我尝试以不同的方式设置系统属性,也可以-D在启动 sbt 时使用标志传递它。

在 sbt 控制台上,我可以看到属性:

eval sys.props("logback.configurationFile")
[info] ans: String = /some/path/logback.xml

但它在 webapp 中不可用。

关于如何将系统属性设置为在 webapp 中可用的任何想法?

我都试过了jetty()tomcat()。相同的行为。

更新: 我最终得到:

jetty(options = new ForkOptions(runJVMOptions = Seq("-Dlogback.configurationFile=/some/path/logback.xml")))

这样可行。

4

1 回答 1

2

javaOptions in container += "-Dlogback.configurationFile=/some/path/logback.xml"按照设置分叉 JVM 选项中的说明使用。

javaOptions单独(没有)也应该可以工作in container,如下所示:inspect actualDependenciesDelegates

[play-new-app] $ inspect actual container:javaOptions
[info] Task: scala.collection.Seq[java.lang.String]
[info] Description:
[info]  Options passed to a new JVM when forking.
[info] Provided by:
[info]  {file:/Users/jacek/sandbox/play-new-app/}root/container:javaOptions
[info] Defined at:
[info]  /Users/jacek/sandbox/play-new-app/build.sbt:26
[info] Dependencies:
[info]  */*:javaOptions
[info] Delegates:
[info]  container:javaOptions
[info]  *:javaOptions
[info]  {.}/container:javaOptions
[info]  {.}/*:javaOptions
[info]  */container:javaOptions
[info]  */*:javaOptions
[info] Related:
[info]  */*:javaOptions
于 2014-10-23T22:19:20.960 回答