如何在Tomcat7中记录请求/响应的所有头

如何在Tomcat7中记录请求/响应的所有头,tomcat,logging,tomcat7,Tomcat,Logging,Tomcat7,我试图在Tomcat7中记录所有请求/响应的头。我试着用。但正如链接中提到的,我们只能逐个打印标题。我们必须指定所需的每个标题 e、 g 是否有一种方法可以一次记录所有的头,可能是使用通配符 谢谢。没有现成的方法,但是一个简单的替代方法是运行过滤器。过滤器会将您想要的所有头推送到servlet请求中。然后在模式中使用“{foo}r”,其中foo是servlet请求中变量的名称。说将其添加到服务器.xml: 初始重要提示,特别是在生产环境中:请小心启用筛选器,因为它可能会损害您的请求参数编码!所以

我试图在Tomcat7中记录所有请求/响应的头。我试着用。但正如链接中提到的,我们只能逐个打印标题。我们必须指定所需的每个标题

e、 g

是否有一种方法可以一次记录所有的头,可能是使用通配符


谢谢。

没有现成的方法,但是一个简单的替代方法是运行过滤器。过滤器会将您想要的所有头推送到servlet请求中。然后在模式中使用“{foo}r”,其中foo是servlet请求中变量的名称。

说将其添加到
服务器.xml


初始重要提示,特别是在生产环境中:请小心启用筛选器,因为它可能会损害您的请求参数编码!所以,也许要确保通过设置第一个来设置所有正确的设置


从上的Tomcat 7+中,您应该通过以下方式完成此操作:

  • web.xml

请求转储程序
org.apache.catalina.filters.RequestDumperFilter
请求转储程序
*
然后将其记录到一些特殊的日志文件中,如CATALINA_BASE/conf/logging.properties中的以下文件(根据修改):

##这可能是您(待更新)的原始处理程序声明:
#处理程序=\
#1catalina.org.apache.juli.AsyncFileHandler\
#,2localhost.org.apache.juli.AsyncFileHandler\
#,3manager.org.apache.juli.AsyncFileHandler\
#,4host-manager.org.apache.juli.AsyncFileHandler\
#,java.util.logging.ConsoleHandler
## ... 您必须添加1个最需要的转储程序:
处理程序=\
1request-dumper.org.apache.juli.FileHandler\
,1catalina.org.apache.juli.AsyncFileHandler\
,2localhost.org.apache.juli.AsyncFileHandler\
,3manager.org.apache.juli.AsyncFileHandler\
,4host-manager.org.apache.juli.AsyncFileHandler\
,java.util.logging.ConsoleHandler
## ...
#对于下面的配置,请选择1request-dumper.org.apache.juli.FileHandler
#还需要添加到文件顶部附近的handlers属性中
1request-dumper.org.apache.juli.FileHandler.level=INFO
1request-dumper.org.apache.juli.FileHandler.directory=${catalina.base}/logs
1request-dumper.org.apache.juli.FileHandler.prefix=localhost\u access\u log.req-dumps。
1request-dumper.org.apache.juli.FileHandler.encoding=UTF-8
1request-dumper.org.apache.juli.FileHandler.formatter=org.apache.juli.VerbatimFormatter
org.apache.catalina.filters.RequestDumperFilter.level=INFO
org.apache.catalina.filters.RequestDumperFilter.handlers=\
1request-dumper.org.apache.juli.FileHandler

在Tomcat 6之前,您可以使用RequestDumperValve(如中所示):

将此添加到您的
服务器.xml


将此添加到web.xml:

<filter>
    <filter-name>Request Dumper Filter</filter-name>
    <filter-class>org.apache.catalina.filters.RequestDumperFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>Request Dumper Filter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

请求转储程序筛选器
org.apache.catalina.filters.RequestDumperFilter
请求转储程序筛选器
/*
这将在cataline.out日志文件中记录请求和响应头:

==> /usr/local/tomcat/logs/catalina.out <==
2020-06-10 12:20:47.844 INFO  [RequestDumperFilter] - http-nio-8080-exec-9 START TIME        =10-Jun-2020 12:20:47
2020-06-10 12:20:47.845 INFO  [RequestDumperFilter] - http-nio-8080-exec-9         requestURI=/myservice/health
2020-06-10 12:20:47.845 INFO  [RequestDumperFilter] - http-nio-8080-exec-9           authType=null
2020-06-10 12:20:47.846 INFO  [RequestDumperFilter] - http-nio-8080-exec-9  characterEncoding=null
2020-06-10 12:20:47.846 INFO  [RequestDumperFilter] - http-nio-8080-exec-9      contentLength=-1
2020-06-10 12:20:47.847 INFO  [RequestDumperFilter] - http-nio-8080-exec-9        contentType=null
2020-06-10 12:20:47.847 INFO  [RequestDumperFilter] - http-nio-8080-exec-9        contextPath=/myservice
2020-06-10 12:20:47.848 INFO  [RequestDumperFilter] - http-nio-8080-exec-9             header=host=192.168.99.200:9080
2020-06-10 12:20:47.849 INFO  [RequestDumperFilter] - http-nio-8080-exec-9             header=accept=text/plain, text/*, */*
2020-06-10 12:20:47.849 INFO  [RequestDumperFilter] - http-nio-8080-exec-9             header=accept-encoding=gzip
2020-06-10 12:20:47.850 INFO  [RequestDumperFilter] - http-nio-8080-exec-9             header=connection=close
2020-06-10 12:20:47.850 INFO  [RequestDumperFilter] - http-nio-8080-exec-9             locale=en_US
2020-06-10 12:20:47.851 INFO  [RequestDumperFilter] - http-nio-8080-exec-9             method=GET
2020-06-10 12:20:47.851 INFO  [RequestDumperFilter] - http-nio-8080-exec-9           pathInfo=null
2020-06-10 12:20:47.851 INFO  [RequestDumperFilter] - http-nio-8080-exec-9           protocol=HTTP/1.1
2020-06-10 12:20:47.852 INFO  [RequestDumperFilter] - http-nio-8080-exec-9        queryString=null
2020-06-10 12:20:47.852 INFO  [RequestDumperFilter] - http-nio-8080-exec-9         remoteAddr=172.18.0.1
2020-06-10 12:20:47.853 INFO  [RequestDumperFilter] - http-nio-8080-exec-9         remoteHost=172.18.0.1
2020-06-10 12:20:47.853 INFO  [RequestDumperFilter] - http-nio-8080-exec-9 requestedSessionId=null
2020-06-10 12:20:47.854 INFO  [RequestDumperFilter] - http-nio-8080-exec-9             scheme=https
2020-06-10 12:20:47.854 INFO  [RequestDumperFilter] - http-nio-8080-exec-9         serverName=192.168.99.200
2020-06-10 12:20:47.855 INFO  [RequestDumperFilter] - http-nio-8080-exec-9         serverPort=443
2020-06-10 12:20:47.855 INFO  [RequestDumperFilter] - http-nio-8080-exec-9        servletPath=/health
2020-06-10 12:20:47.856 INFO  [RequestDumperFilter] - http-nio-8080-exec-9           isSecure=true
2020-06-10 12:20:47.856 INFO  [RequestDumperFilter] - http-nio-8080-exec-9 ------------------=--------------------------------------------
2020-06-10 12:20:47.857 INFO  [RequestDumperFilter] - http-nio-8080-exec-9 ------------------=--------------------------------------------
2020-06-10 12:20:47.857 INFO  [RequestDumperFilter] - http-nio-8080-exec-9           authType=null
2020-06-10 12:20:47.857 INFO  [RequestDumperFilter] - http-nio-8080-exec-9        contentType=application/json;charset=UTF-8
2020-06-10 12:20:47.858 INFO  [RequestDumperFilter] - http-nio-8080-exec-9             status=200
2020-06-10 12:20:47.858 INFO  [RequestDumperFilter] - http-nio-8080-exec-9 END TIME          =10-Jun-2020 12:20:47
2020-06-10 12:20:47.858 INFO  [RequestDumperFilter] - http-nio-8080-exec-9 ===============================================================

==>/usr/local/tomcat/logs/catalina.out RequestDumperValue在tomcat 7中不可用:有-可能当时没有-请参阅其他答案
==> /usr/local/tomcat/logs/catalina.out <==
2020-06-10 12:20:47.844 INFO  [RequestDumperFilter] - http-nio-8080-exec-9 START TIME        =10-Jun-2020 12:20:47
2020-06-10 12:20:47.845 INFO  [RequestDumperFilter] - http-nio-8080-exec-9         requestURI=/myservice/health
2020-06-10 12:20:47.845 INFO  [RequestDumperFilter] - http-nio-8080-exec-9           authType=null
2020-06-10 12:20:47.846 INFO  [RequestDumperFilter] - http-nio-8080-exec-9  characterEncoding=null
2020-06-10 12:20:47.846 INFO  [RequestDumperFilter] - http-nio-8080-exec-9      contentLength=-1
2020-06-10 12:20:47.847 INFO  [RequestDumperFilter] - http-nio-8080-exec-9        contentType=null
2020-06-10 12:20:47.847 INFO  [RequestDumperFilter] - http-nio-8080-exec-9        contextPath=/myservice
2020-06-10 12:20:47.848 INFO  [RequestDumperFilter] - http-nio-8080-exec-9             header=host=192.168.99.200:9080
2020-06-10 12:20:47.849 INFO  [RequestDumperFilter] - http-nio-8080-exec-9             header=accept=text/plain, text/*, */*
2020-06-10 12:20:47.849 INFO  [RequestDumperFilter] - http-nio-8080-exec-9             header=accept-encoding=gzip
2020-06-10 12:20:47.850 INFO  [RequestDumperFilter] - http-nio-8080-exec-9             header=connection=close
2020-06-10 12:20:47.850 INFO  [RequestDumperFilter] - http-nio-8080-exec-9             locale=en_US
2020-06-10 12:20:47.851 INFO  [RequestDumperFilter] - http-nio-8080-exec-9             method=GET
2020-06-10 12:20:47.851 INFO  [RequestDumperFilter] - http-nio-8080-exec-9           pathInfo=null
2020-06-10 12:20:47.851 INFO  [RequestDumperFilter] - http-nio-8080-exec-9           protocol=HTTP/1.1
2020-06-10 12:20:47.852 INFO  [RequestDumperFilter] - http-nio-8080-exec-9        queryString=null
2020-06-10 12:20:47.852 INFO  [RequestDumperFilter] - http-nio-8080-exec-9         remoteAddr=172.18.0.1
2020-06-10 12:20:47.853 INFO  [RequestDumperFilter] - http-nio-8080-exec-9         remoteHost=172.18.0.1
2020-06-10 12:20:47.853 INFO  [RequestDumperFilter] - http-nio-8080-exec-9 requestedSessionId=null
2020-06-10 12:20:47.854 INFO  [RequestDumperFilter] - http-nio-8080-exec-9             scheme=https
2020-06-10 12:20:47.854 INFO  [RequestDumperFilter] - http-nio-8080-exec-9         serverName=192.168.99.200
2020-06-10 12:20:47.855 INFO  [RequestDumperFilter] - http-nio-8080-exec-9         serverPort=443
2020-06-10 12:20:47.855 INFO  [RequestDumperFilter] - http-nio-8080-exec-9        servletPath=/health
2020-06-10 12:20:47.856 INFO  [RequestDumperFilter] - http-nio-8080-exec-9           isSecure=true
2020-06-10 12:20:47.856 INFO  [RequestDumperFilter] - http-nio-8080-exec-9 ------------------=--------------------------------------------
2020-06-10 12:20:47.857 INFO  [RequestDumperFilter] - http-nio-8080-exec-9 ------------------=--------------------------------------------
2020-06-10 12:20:47.857 INFO  [RequestDumperFilter] - http-nio-8080-exec-9           authType=null
2020-06-10 12:20:47.857 INFO  [RequestDumperFilter] - http-nio-8080-exec-9        contentType=application/json;charset=UTF-8
2020-06-10 12:20:47.858 INFO  [RequestDumperFilter] - http-nio-8080-exec-9             status=200
2020-06-10 12:20:47.858 INFO  [RequestDumperFilter] - http-nio-8080-exec-9 END TIME          =10-Jun-2020 12:20:47
2020-06-10 12:20:47.858 INFO  [RequestDumperFilter] - http-nio-8080-exec-9 ===============================================================