我已将项目迁移到0.13.5并开始使用xsbt-web-plugin。
我想将logback配置为使用类路径之外的配置文件,该配置文件由系统属性logback.configurationFile
设置(因此我可以将logconfig保留在war文件之外)。
以前我只想设置:
System.setProperty("logback.configurationFile", "/some/path/logback.xml")
在project/build.scala
内并且后退将会提取它。
但是,在将sbt升级到0.13.5并迁移到sbt中设置的xsbt-web-plugin系统属性后,似乎在运行时(jetty)不可用。
我尝试过以不同的方式设置系统属性,也可以在启动sbt时使用-D
标志传递它。
在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")))
有效。
答案 0 :(得分:2)
javaOptions in container += "-Dlogback.configurationFile=/some/path/logback.xml"
javaOptions
单独(不in container
)也可以正常工作,如inspect actual
和Dependencies
下的Delegates
所示:
[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