All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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