【问题标题】:Best way of logging REST API response time in spring + tomcat在 spring + tomcat 中记录 REST API 响应时间的最佳方法
【发布时间】:2018-01-28 19:47:26
【问题描述】:

我正在使用带有 tomcat servlet 容器的 spring mvc 和 web 服务,并且想要记录 API 的响应时间(总执行时间),那么有没有什么 spring 服务或者记录与 api 执行相关的此类信息的最佳方法是什么弹簧控制器级别的时间。

【问题讨论】:

  • 我会使用 servlet 过滤器。我会考虑扩展AbstractRequestLoggingFilter
  • 我同意@EdwinDalorzo 我们可以编写自定义过滤器,它总是首先执行,并在请求完成时记录响应时间

标签: java spring-mvc tomcat logging


【解决方案1】:

随着浏览量的增加,这篇文章没有正确的答案,所以我想回答我的发现。所以如果你使用Spring和tomcat有两种方法。

方法一#

实现一个拦截器并在请求preHandle块中的新参数(requestReceivingTime)中添加当前时间并记录当前时间requestReceivingTime 在postHandle 块中。

方法二#

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

<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 版本。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2023-01-20
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    • 2020-09-30
    • 1970-01-01
    • 1970-01-01
    • 2019-11-10
    相关资源
    最近更新 更多