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

Unit testing 使用Scala 2.10.2、SBT 0.13.0、Specs2和;Play Framework 2.2.1如何在运行测试时控制日志记录?,unit-testing,scala,logging,playframework,playframework-2.2,Unit Testing,Scala,Logging,Playframework,Playframework 2.2,我对Play 2 framework Scala应用程序使用的不同日志记录框架感到非常困惑,即使是反复试验,我也没有找到一种方法在使用“run”和“test”运行应用程序之间提供单独的日志记录配置文件 我们的应用程序使用play.api.Logger实例来输出日志。我们有很多其他的play插件,它们似乎是通过logback直接输出的 到目前为止,我们已经使用一个conf/logger.xml(这是logback配置,对吗?)文件成功地控制了日志输出。这将使用模式设置两个附加器并控制输出级别。通过

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

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

到目前为止,我们已经使用一个
conf/logger.xml
(这是logback配置,对吗?)文件成功地控制了日志输出。这将使用模式设置两个附加器并控制输出级别。通过
“运行”
执行应用程序时,绝对没有问题

如果我尝试提供一个可选的
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
中,但这不会影响任何内容

因此,为了理解所使用的不同组件,似乎表明a)play实际上在内部使用一个单独的日志框架,b)然后将其推到logback。我不知道的是如何判断哪些实现被破坏了

有谁能帮助我理解play 2日志在这方面的工作原理,并通过它帮助我解决我的特定问题?通过谷歌搜索,在使用
'dist'
时,日志配置可能会出现问题,但我还不知道

编辑:
我想知道是不是这个问题?我还没有机会尝试它。

我记得我也在为同样的问题挣扎。基本上,当运行测试时,我找不到玩的方法!使用不同的记录器配置。我最终找到了一种方法:我的生产代码使用了
conf/logger.xml
,并且在运行测试时添加了
/test/resources/logger text.xml
来配置我的记录器


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

对不起,应该是
test/resources/logger test.xml
?这是否需要任何进一步的配置才能工作,或者这是一种惯例?有没有指向该机制文档的指针?我正在努力理解这一切是如何运作的,这样我将来就能帮助自己:)这似乎是一个惯例,因为我没有改变任何其他东西。我没有关于它的任何文档,只是尝试了一下,它就成功了:)我猜
test/resources/
中的配置优先于
conf
中的配置。我已经开始使用Play2.5,但这对我来说不起作用。我不知道它是否不再起作用了。我能够将
.settings(Test+=“-Dlogger.file=Test/resources/logback Test.xml中的javaOptions)添加到我的构建配置中,
,但效果不错。