使用Scala Play2.5基于环境加载回显配置

使用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

我想根据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
    文件中执行此操作的方式:

    // 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