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