6

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

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

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

如何获得所需的行为?:

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

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

4

1 回答 1

3

你在滥用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 中打包(它指向某个外部位置)以便能够临时更改日志记录配置。

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

于 2014-12-18T04:17:49.570 回答