使用Scala Play2.5基于环境加载回显配置
我想根据SCALA_ENV环境变量加载不同的logback配置使用Scala Play2.5基于环境加载回显配置,scala,playframework-2.5,configuration-management,Scala,Playframework 2.5,Configuration Management,我想根据SCALA_ENV环境变量加载不同的logback配置 如果SCALA_ENV=PROD load logback.xml 如果SCALA_ENV=dev,则加载logback-dev.xml 如果SCALA_ENV=测试加载logback-test.xml 如果SCALA_ENV=qa加载logback-qa.xml 我从Play2.5文档站找到了这个示例,但不清楚。 此外,MyComponenet未解析,编译失败 这是我在build.sbt文件中执行此操作的方式: // logba
此外,MyComponenet未解析,编译失败
这是我在
build.sbt
文件中执行此操作的方式:
// logback for Prod
javaOptions in Production += "-Dlogger.resource=logback.prod.xml"
// logback for testing
javaOptions in Test += "-Dlogger.resource=logback.test.xml"
我的默认版本是dev,它只保留在默认位置。不是理想的解决方案,但我在build.sbt中根据环境更改了-Dlogger.resource文件
lazy val logBackXml = sys.env("env").toLowerCase() match {
case "prod" => "-Dlogger.resource=logback.xml"
case "test" => "-Dlogger.resource=logback.test.xml"
case "qa" => "-Dlogger.resource=logback.qa.xml"
case _ => "-Dlogger.resource=logback.dev.xml"
}
javaOptions in Production += logBackXml
嗯,这应该暂时有效。但是,如果我想为QA添加另一个logback(logback.QA.xml)并在SCALA_ENV=QA时加载logback.QA.xml怎么办?如何在生产模式下运行sbt?
javaOptions
只需在命令行上指定即可。如果您想运行其他程序,只需执行/myapp/bin/myapp-Dlogger.resource=logback.qa.xml
。对于第二个问题,您可以执行sbt testProd