如何使用SBT和Scala正确管理开发和生产中的logback配置?

Mat*_*one 6 scala logback slf4j sbt sbt-assembly

我有一个非常标准的Scalatra项目,使用Logback进行日志记录.

回归手册之后,我添加了一个logback-test.xml用于我的开发配置(调试日志),同时保持生产logback.xml.

但是,在使用xsbt-web-plugin运行带有代码重新加载的容器的开发中,我的应用程序似乎只是拿起了logback.xml.

我如何获得所需的行为?:

  1. 在开发模式(./sbt container:start)中,应用程序使用logback-test.xml
  2. 使用SBT-assembly组装成拉链时,请排除测试配置.

目前这些似乎都不起作用.

dk1*_*k14 3

你用错了logback-test.xml。它仅用于类似单元的测试,并且应该放置在src/test/resources(自动从产品中排除)。为了实现你想要的 - 你可以通过系统属性设置路径logback-dev.xml

 javaOptions in container += "-Dlogback.configurationFile=/some/path/logback-dev.xml"
Run Code Online (Sandbox Code Playgroud)

该路径可能是相对的。请参阅/sf/answers/1857691461/

在我的实践中,我们甚至不打包logback.xml产品(它指向某个外部位置)以能够临时更改日志记录配置。

PS 如果您还对从 sbt- assembly 中排除文件感兴趣 -可能会有所帮助