如何在grails test-app中查看网络流量? - 也许是RESTClient日志记录?

时间:2014-07-16 11:38:10

标签: unit-testing grails logging

我使用只有spock单元测试的grails项目来进行Web调用以验证一组Web服务。它使用RESTClient进行调用。

我最近从Grails 2.0.0升级到2.3.4,并将所有依赖项更新为最新版本。

使用GGTS下的旧环境运行单元测试,我曾经看到所有网络流量的痕迹 - 对于调试问题非常有用。现在缺少此跟踪,而是在每次测试开始时看到以下内容发送到stderr:

log4j:WARN No appenders could be found for logger (groovyx.net.http.RESTClient).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

我在Setup.groovy中使用log4j配置搞砸了很多,但它没有任何效果(实际上我知道单元测试通常不会设置log4j)。

如何修复最新的groovyx.net.http.RESTClient以提供网络跟踪?

  • 查尔斯

1 个答案:

答案 0 :(得分:0)

啊 - 结果是Config.groovy中的log4j配置并不适用于GGTS的测试。我在source / groovy(即在类路径上)创建了一个文件log4j.xml,里面有这个,我可以看到那里的痕迹很好。

但是当我以grails test-app运行测试时,Config.groovy配置确实有效。去图!

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <param name="Target" value="System.out" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="  %c{1} - %m%n" />
        </layout>
    </appender>

    <category name="groovyx.net.http">
        <priority value="DEBUG" />
    </category>

    <!-- Use DEBUG to see basic request/response info;  
         Use TRACE to see headers for HttpURLClient. -->
    <category name="groovyx.net.http.HttpURLClient">
        <priority value="INFO" />
    </category>
    <category name="groovyx.net.http.RESTClient">
        <priority value="INFO" />
    </category>

    <category name="org.apache.http">
        <priority value="INFO" />
    </category>
    <category name="org.apache.http.headers">
        <priority value="INFO" />
    </category>
    <category name="org.apache.http.wire">
        <priority value="DEBUG" />
    </category>

    <root>
        <priority value="INFO" />
        <appender-ref ref="console" />
    </root>
</log4j:configuration>