Java 转储HttpServletRequest的筛选器&;对文件的响应

Java 转储HttpServletRequest的筛选器&;对文件的响应,java,servlets,logging,Java,Servlets,Logging,Im是指监视所有请求/响应的内容,触发后会写入多个转储文件,如 请求行url方法等 获取url HTTP/1.0 在单独的行中使用参数k/v的请求标头 a=b c=d e=f 请求post正文,转储初始post数据 ashdashdiuhasidahs diasdad 响应状态,在单行上 200行 响应标题,每个标题显示在单独的行上 a=b c=dddd e=fff 响应体,按原样写入输出 asjiasjdoiajdo iajdaoi Djaoidzjaod 它应该为它转储的文件集使用公共的

Im是指监视所有请求/响应的内容,触发后会写入多个转储文件,如

  • 请求行url方法等

    获取url HTTP/1.0

  • 在单独的行中使用参数k/v的请求标头

    a=b c=d e=f

  • 请求post正文,转储初始post数据

    ashdashdiuhasidahs diasdad

  • 响应状态,在单行上

    200行

  • 响应标题,每个标题显示在单独的行上

    a=b c=dddd e=fff

  • 响应体,按原样写入输出

    asjiasjdoiajdo iajdaoi Djaoidzjaod


它应该为它转储的文件集使用公共的唯一前缀。此命名应该是可配置的。

如果您使用的是Tomcat,则可以使用RequestDumperValve。通过打开server.xml并按照其中的说明取消注释来启用它:

<!-- <Valve className="org.apache.catalina.valves.RequestDumperValve"/> -->

它似乎解决了您的一些(如果不是全部)需求。有关更多信息,请查看这个(它还提到RequestDumperFilter,但我以前没有使用过它)

日志显示在TOMCAT\u HOME\Logs\catalina文件中


最后一点要注意的是,我只在非PRD环境中使用,因为它会影响性能,因为server.xml中的注释会警告您…

如果有人在编写此类内容时遇到困难,您可以编写一个好的编写一个,并提供帮助。我只是检查了源代码,读取参数以便将其记录下来会破坏任何多部分文件上载,我想……我忘了提到,如果请求是多部分请求,则阀门也不会记录文本或二进制响应,也不会转储上载的原始文件或熟文件。