Logging filter
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
package controllers.filters
|
||||
|
||||
import jakarta.inject.Inject
|
||||
import play.api.http.{DefaultHttpFilters, EnabledFilters}
|
||||
|
||||
class Filters @Inject() (
|
||||
defaultFilters: EnabledFilters,
|
||||
log: LoggingFilter
|
||||
) extends DefaultHttpFilters(defaultFilters.filters :+ log *)
|
||||
@@ -0,0 +1,25 @@
|
||||
package controllers.filters
|
||||
|
||||
import jakarta.inject.Inject
|
||||
import org.apache.pekko.stream.Materializer
|
||||
import play.api.Logger
|
||||
import play.api.mvc._
|
||||
|
||||
import scala.concurrent.{ExecutionContext, Future}
|
||||
|
||||
class LoggingFilter @Inject()(implicit val mat: Materializer, ec: ExecutionContext) extends Filter {
|
||||
private val logger = Logger("application.controllers")
|
||||
|
||||
override def apply(nextFilter: RequestHeader => Future[Result])(requestHeader: RequestHeader): Future[Result] = {
|
||||
val startTime = System.currentTimeMillis()
|
||||
|
||||
nextFilter(requestHeader).map{ result =>
|
||||
val endTime = System.currentTimeMillis()
|
||||
val requestTime = endTime - startTime
|
||||
|
||||
logger.info(s"${requestHeader.method} ${requestHeader.uri} ${result.header.status} $requestTime")
|
||||
|
||||
result
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user