Java Tomcat RequestDumperFilter日志记录问题

时间:2018-12-10 20:03:17

标签: java tomcat web servlets servlet-filters

在我的Tomcat服务器上,我已将RequestDumperFilter添加到web.xml和我的logging.properties文件中。除了我今天早上注意到的东西以外,一切都按预期进行。

由于各种原因,我拥有的Web应用程序将每5秒调用一次后端。因此,如果在此5秒钟调用的同时大约单击一个新页面,则日志将在文件输出中粉碎在一起。我以为Java会等到文件写完后再使用它。

是否有办法保证将日志按顺序发送到文件,而不是一起粉碎?

这里是RequestDumperFilter的链接:RequestDumperFilter Github

我添加的 web.xml 条目:

<filter>
    <filter-name>requestdumper</filter-name>
    <filter-class>
        org.apache.catalina.filters.RequestDumperFilter
    </filter-class>
</filter>

我的 logging.properties

...
handlers = ... 1request-dumper.org.apache.juli.FileHandler
...
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 = request-dumper.
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

1 个答案:

答案 0 :(得分:0)

如果您要说的是,在多页调用/线程处理方案中,请求转储程序不一定一定要先记录请求和响应,然后再进行记录。 您获得了一个处理线程ID来区分请求,它们在请求之后用------------------隔开,在打印响应之前用================隔开。最后加上一些RewriteEngine on RewriteCond %{QUERY_STRING} ^option=login$ RewriteRule ^(.*) https://linuxsecurity.com/register [R=301,L,QSD] 行。