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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
# https://www.playframework.com/documentation/latest/Configuration
|
# https://www.playframework.com/documentation/latest/Configuration
|
||||||
|
|
||||||
|
play.http.filters=controllers.filters.Filters
|
||||||
|
|
||||||
slick.dbs.default = {
|
slick.dbs.default = {
|
||||||
profile = "slick.jdbc.PostgresProfile$"
|
profile = "slick.jdbc.PostgresProfile$"
|
||||||
db = {
|
db = {
|
||||||
|
|||||||
Reference in New Issue
Block a user