gpt4 book ai didi

unit-testing - 使用 Scala 2.10.2、SBT 0.13.0、Specs2 和 Play Framework 2.2.1 如何在运行测试时控制日志记录?

转载 作者:行者123 更新时间:2023-12-04 04:57:43 25 4
gpt4 key购买 nike

我对我们的 Play 2 框架 Scala 应用程序使用的不同日志记录框架感到非常困惑——即使经过反复试验,我也没有找到一种方法来在使用 ' 运行应用程序之间提供单独的日志记录配置文件运行”和“测试”。

我们的应用程序使用 play.api.Logger 实例来输出日志。我们有各种其他 Play 插件,它们似乎直接通过 logback 输出。

到目前为止,我们一直在使用单个 conf/logger.xml(这是 logback 配置对吗?)文件成功控制日志输出。这会设置两个带有模式的附加程序并控制输出级别。通过 'run' 执行应用时绝对没有问题。

如果我尝试提供替代的 conf/logger-test.xml 文件 - 使用 'test' 运行会忽略它。我试过这样做:

testOptions in Test ++= Seq(
Tests.Setup(() => {
println("Setting logger to logger-test.xml")
System.setProperty("logger.file", "conf/logger-test.xml")
})
),

Build.scala 中,但这不会影响任何东西。

因此,为了了解使用中的不同组件,http://www.playframework.com/documentation/2.2.x/SettingsLogger似乎表明 a) play 实际上在内部使用单独的日志记录框架,b) 然后将其推送到 logback。我不知道的是如何判断哪些实现被破坏了。

任何人都可以帮助我了解 play 2 日志记录在这方面的工作原理并帮助我解决我的特定问题吗?通过一些谷歌搜索,似乎在使用 'dist' 时玩日志配置也可能存在问题,但我还没有。

编辑:

我想知道 this是什么问题?还没有机会尝试。

最佳答案

我记得曾遇到过同样的问题。基本上,在运行测试时我找不到 Play 的方法!使用不同的记录器配置。我最终找到了一种方法:我有 conf/logger.xml 作为我的生产代码,我添加了 /test/resources/logger-text.xml 来配置我的记录器运行测试。

我的日志配置文件遵循配置的 logback 语法。希望对您有所帮助。

关于unit-testing - 使用 Scala 2.10.2、SBT 0.13.0、Specs2 和 Play Framework 2.2.1 如何在运行测试时控制日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20584463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com