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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用SBT和Scala正确管理开发和生产中的logback配置?相关的知识,希望对你有一定的参考价值。

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

logback manual之后,我为我的开发配置(调试日志)添加了一个logback-test.xml,同时保持了生产logback.xml

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

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

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

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

答案

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

 javaOptions in container += "-Dlogback.configurationFile=/some/path/logback-dev.xml"

这条路可能是相对的。见,https://stackoverflow.com/a/26538449/1809978

在我的实践中,我们不打包logback.xml即使在prod(它指向一些外部的地方)有能力ad-hoc更改日志配置。

附:如果你也有兴趣从sbt-assembly中排除文件 - this可能有所帮助

以上是关于如何使用SBT和Scala正确管理开发和生产中的logback配置?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SBT 原生打包器部署 Scala Play 框架 API

scala maven sbt 哪个

intellij 与 sbt scala 和 android dev

使用 simple-build-tool (sbt) 和 IntelliJ 调试 Scala 代码

Sbt的使用初步和用sbt插件生成eclipse工程

IntelliJ 14 - 创建/导入 Scala / SBT 项目