2017-04-19 22 views
0

SCALA_ENV環境変数に基づいて異なるログバック構成をロードしたいとします。Scala Play2.5を使用した環境に基づいたログバック構成のロード

  1. 場合SCALA_ENV = PROD負荷logback.xml
  2. 場合SCALA_ENV = DEV負荷logback-dev.xmlファイル
  3. 場合SCALA_ENV =試験荷重logback-のtest.xml
  4. 場合SCALA_ENV = QA負荷logback- qa.xml

再生2.5のドキュメントからこの例が見つかりましたが、明確ではありません。
enter image description here

また

MyComponenets未解決であるとコンパイルが失敗します。

答えて

0

これは私が私のbuild.sbtファイルでそれを行う方法です。

// logback for Prod 
javaOptions in Production += "-Dlogger.resource=logback.prod.xml" 

// logback for testing 
javaOptions in Test += "-Dlogger.resource=logback.test.xml" 

私のデフォルトの1だけでデフォルトの場所に残されDEV、です。

+0

で環境に基づいて-Dlogger.resourceファイルを変更しています。しかし、QA(logback.qa.xml)のログバックを追加し、SCALA_ENV = QAのときにlogback.qa.xmlをロードしたいのですが? –

+0

生産モードでsbtを実行するには? –

+0

'javaOptions'はコマンドラインで指定する必要がありません。それ以外のものを実行したい場合は './myapp/bin/myapp -Dlogger.resource = logback.qa.xml'を実行してください。あなたの2番目の質問については、 'sbt testProd' – Tyler

0

ない理想的なソリューションが、私はうーん、これは一時的に動作するはずbuild.sbt

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