Grails:打印每个请求所花费的时间

时间:2014-10-02 22:28:14

标签: grails groovy

我想打印我的控制器中的每个请求,请求何时开始,何时结束以及该过程需要多长时间。我是否必须单独将此代码添加到每个请求中,或者是否有任何通用的方法来执行此操作?

2 个答案:

答案 0 :(得分:3)

除了存在各种各样的插件(例如Profiler)之外,一个非常简单的解决方案是使用过滤器。这个blog post引导您完成设置过滤器的过程,该过滤器将记录每个控制器操作的开始和结束时间。

使用Grails过滤器的一个非常简单的例子是:

class PerfFilter {
  def filters = {
    profiler(controller: '*', action: '*') {
      before {
        request._startTime = System.currentTimeMillis()
        log.trace("Beginning ${controllerName} ${actionName}")
      }
      after {
        log.trace("Finished ${controllerName} ${actionName}")
        log.trace("Total time to execute was: ${System.currentTimeMillis() - request._startTime}")
      }
    }
  }
}

如果您需要更强大的整体性能监控功能,我强烈推荐Grails的Javamelody plugin

答案 1 :(得分:0)

apache AB非常有帮助。您可以使用一个并发和一个请求进行ab测试,以便在需要时显示时间。我还建议使用名为“New Relic'”的工具。非常适合测试并显示请求和瓶颈的时间。