Tomcat上的Grails - 如何记录原始HTTP请求/响应

时间:2012-01-12 07:47:22

标签: tomcat grails logging

我找不到配置我的虚拟教程Grails应用程序的方法来记录Grails服务器接受/生成的所有HTTP请求和响应(实际上是Tomcat)。这可能吗?

3 个答案:

答案 0 :(得分:3)

另一个选择是使用tomcat的内置访问日志记录。

http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html#Access_Log_Valve

我自己使用它,它是可配置的。

如何配置tomcat 6

 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
               prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>

将其添加到server.xml配置的“Host”标签下。

答案 1 :(得分:3)

您可以使用Grails插件:https://github.com/TouK/grails-httplogger或Tomcat过滤器。
如果使用Tomcat 7,则为RequestDumperFilter。 我更喜欢RequestDumperFilter。

简而言之:

安装Grails模板

    grails install-templates

编辑web.xml并添加RequestDumperFilter

<filter>
<filter-name>requestdumper</filter-name>
<filter-class>org.apache.catalina.filters.RequestDumperFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>requestdumper</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>

编辑Config.groovy中的log4j部分并添加

debug   'org.apache.catalina.filters.RequestDumperFilter'

这应该足够了。

如果您需要更多信息,here您会找到一份详尽的说明。

答案 2 :(得分:0)

这样的日志记录可以很容易地实现为过滤器 - Grails过滤器(请参阅http://grails.org/doc/latest/guide/theWebLayer.html#filters以获取这些过滤器的示例和示例日志记录过滤器),或者作为标准servlet过滤器(可在此处找到示例:{ {3}})。

如果您选择第二个选项,则必须修改web.xml以包含过滤器。为此,请执行grails install-templates。这会将项目中的标准web.xml复制到templates/WEB-INF目录,您可以在那里进行修改。