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



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

另一个选项是使用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"。

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

简而言之:

安装Grails模板

grails安装模板

编辑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'

这应该足够了。

如果你需要更多的信息,你可以在这里找到详细的说明。

这样的日志记录可以很容易地实现为一个过滤器-Grails过滤器(请参阅http://grails.org/doc/latest/guide/theWebLayer.html#filters用于描述这些和示例日志过滤器),或作为标准servlet过滤器(示例可以在这里找到:http://www.java2s.com/Code/Java/Servlets/LogFilter.htm)。

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

最新更新