如何使用SBT和Scala正确管理开发和生产中的logback配置?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用SBT和Scala正确管理开发和生产中的logback配置?相关的知识,希望对你有一定的参考价值。
我有一个非常标准的Scalatra项目,使用Logback进行日志记录。
继logback manual之后,我为我的开发配置(调试日志)添加了一个logback-test.xml
,同时保持了生产logback.xml
。
但是,在开发中使用xsbt-web-plugin
运行带有代码重新加载的容器时,我的应用程序似乎只能拿起logback.xml
。
我如何获得所需的行为?:
- 在开发模式(
./sbt container:start
),该应用程序使用logback-test.xml
- 使用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
intellij 与 sbt scala 和 android dev