在我的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

最佳答案

如果您的意思是,在多页调用/线程方案中,请求转储程序不一定会在另一个请求之后直接记录请求和响应,那是设计使然。
您获得了一个处理线程ID来区分请求,并且在请求之后将它们用------------------分隔,在打印响应之前将它们用================分隔。最后加上一些行。

07-27 21:14