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

标签 scala sbt slf4j logback sbt-assembly

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

关注 logback manual我添加了一个 logback-test.xml用于我的开发配置(调试日志),同时维护生产 logback.xml .

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

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

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

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

    最佳答案

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

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

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

    在我的实践中,我们不打包 logback.xml即使在 prod 中(它指向某个外部位置)也有能力临时更改日志记录配置。

    附注如果您也对从 sbt-assembly 中排除文件感兴趣 - this可能有帮助

    关于scala - 如何使用 SBT 和 Scala 在开发和生产中正确管理 logback 配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27538717/

    相关文章:

    scala - Scala中文件名和对象名对应关系

    scala - 是否可以在 Scala 中以另一种方式进行 curry ?

    scala - 如何在 build.sbt 中指定命令行参数

    java - org.slf4j.Logger 错误

    maven - 使用 maven 和 spring boot 在类路径上检测到 log4j-over-slf4j.jar 和 slf4j-log4j12.jar

    mongodb - ReactiveMongo:如何将 FindAndModify 返回的 BSON 转换为 JSON

    Scala 流性能

    java - Play 2.5 与 JDK 11 兼容吗?

    sbt - 如何在插件自己的项目中使用SBT插件?

    java - 这个日志语句有什么问题?