Logging filter

This commit is contained in:
2026-07-10 13:25:33 +03:00
parent 0f7925b56c
commit a004c1a97e
3 changed files with 36 additions and 0 deletions
+9
View File
@@ -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
}
}
}
+2
View File
@@ -1,5 +1,7 @@
# https://www.playframework.com/documentation/latest/Configuration
play.http.filters=controllers.filters.Filters
slick.dbs.default = {
profile = "slick.jdbc.PostgresProfile$"
db = {