我找不到配置我的虚拟教程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
目录中,您可以在那里修改它。