Reputation: 10904
I try to implement the LoggingFilter as in the example given on https://www.playframework.com/documentation/2.4.1/ScalaHttpFilters with Play 2.4.1 .
FilterConfiguration import javax.inject.Inject import play.api.http.HttpFilters
class FiltersConfiguaration @Inject()(loggingFilter:com.holidaycheck.filters.RequestLoggingFilter) extends HttpFilters {
val filters = Seq(loggingFilter)
}
Filter
import play.api.Logger
import play.api.mvc._
import play.api.libs.concurrent.Execution.Implicits.defaultContext
object RequestLoggingFilter extends EssentialFilter {
def apply(nextFilter: EssentialAction) = new EssentialAction {
def apply(requestHeader: RequestHeader) = {
val startTime = System.currentTimeMillis
nextFilter(requestHeader).map { result =>
val endTime = System.currentTimeMillis
val requestTime = endTime - startTime
Logger.info(s"${requestHeader.method} ${requestHeader.uri}" +
s" took ${requestTime}ms and returned ${result.header.status}")
result.withHeaders("Request-Time" -> requestTime.toString)
}
}
}
}
configuration
I do as given in the explanation, also giving the filters in the application.conf
.
play.http.filters = com.holidaycheck.filters.FiltersConfiguaration
But I get the following Error:
What am I missing here ?
Upvotes: 2
Views: 834
Reputation: 5699
You are trying to inject an object
in your FiltersConfiguaration
. Make RequestLoggingFilter
a class
should solve your problem.
Upvotes: 2