在我的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来区分请求,并且在请求之后将它们用------------------
分隔,在打印响应之前将它们用================
分隔。最后加上一些行。