
com.lucidchart.piezo.admin.RequestStatCollector.scala Maven / Gradle / Ivy
The newest version!
package com.lucidchart.piezo.admin
import play.api.mvc._
import play.api.Logging
import scala.concurrent.ExecutionContext
class RequestStatCollector(ec: ExecutionContext) extends EssentialFilter with Logging {
private def recordStats(request: RequestHeader, start: Long)(result: Result): Result = {
val time = System.currentTimeMillis - start
logger.info(s"${request.method} ${request.uri} took ${time}ms and returned ${result.header.status}")
result
}
def apply(next: EssentialAction) = EssentialAction { request: RequestHeader =>
val start = System.currentTimeMillis
next(request).map { value =>
recordStats(request, start)(value)
}(ec)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy