我找不到配置我的虚拟教程Grails应用程序的方法来记录Grails服务器接受/生成的所有HTTP请求和响应(实际上是Tomcat)。这可能吗?
答案 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
目录,您可以在那里进行修改。