java - 在 spring + tomcat 中记录 REST API 响应时间的最佳方式

标签 java spring-mvc tomcat logging

我将 spring mvc 与 tomcat servlet 容器一起用于 web 服务,并希望记录 API 的响应时间(总执行时间),那么是否有任何 spring 服务或者记录此类与 api 执行相关的信息的最佳方式是什么 Spring Controller 级别的时间。

最佳答案

随着浏览量的增加,这篇文章没有合适的答案,所以我想回答我的发现。因此,如果您同时使用 Spring 和 tomcat,则有两种方法。

方法一#

实现拦截器并在请求 preHandle block 中的新参数 (requestReceivingTime) 中添加当前时间,并记录减去当前时间requestReceivingTimepostHandle block 中。

方法二#

您可以使用 tomcat 访问日志来记录请求时间,您必须根据需要编辑 conf/server.xml 并更改格式。对于 exp

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%{X-Forwarded-For}i , %t Bytes sent: [%B] , Time taken millis: [%D] , Time taken seconds: [%T]  &quot;%r&quot; %s" />

注意:模式可能会根据您的情况而改变,这取决于 tomcat 版本。

希望这会有所帮助!

关于java - 在 spring + tomcat 中记录 REST API 响应时间的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48490625/

相关文章:

java - 单个模块的 Maven 配置文件

java - 如何使用spring security(spring boot)实现Ldap认证

java - server.port 和 server.context-path 在部署到 tomcat 时不生效

java - Spring Autowiring 多个服务实现

tomcat - 客户端发送的请求在 Windows 中语法不正确

java - JAVA中如何将Pair转换为二维数组?

java - arraylist 与数组中原始类型的包装器

tomcat - 如何在不显示端口号的情况下在 Tomcat 上运行基于 Spring Boot 的 Web 应用程序?

java - HTML5视频源不理解文件存储路径

java - 从 java 代码在 MAC OS 上运行 .pkg