我设法通过编辑conf / server.xml并取消注释org.apache.catalina.valves.AccessLogValve Valve的条目来在Tomcat中启用访问日志记录。我希望能够转储POST的有效内容。似乎模式中的任何选项都无法做到这一点。有内置的方法可以做到这一点吗?我是否使用AccessLogValve?
由于没有建议使用内置方法来获取POST负载,因此我继续编写了一个自定义过滤器来转储负载的内容。特别:
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; LOG.debug("payload: " + requestWrapper.getRequestBody());
和web.xml:
<filter> <filter-name>PayloadLoggingFilter</filter-name> <filter-class>com.host.PayloadLoggingFilter</filter-class> </filter> <filter-mapping> <filter-name>PayloadLoggingFilter</filter-name> <url-pattern>/resources/*</url-pattern> </filter-mapping>