Вы можете создать файл logger.xml
в каталоге conf. Он должен следовать формату файла журнала.
, например, конфигурация по умолчанию может выглядеть следующим образом:
<configuration scan="true" scanPeriod="5 seconds">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%level %logger{15} - %message%n%xException{5}</pattern>
</encoder>
</appender>
<logger name="play" level="INFO" />
<logger name="application" level="INFO" />
<root level="ERROR">
<appender-ref ref="STDOUT" />
</root>
</configuration>
Вы можете включить уровни протоколирования: FATAL, ERROR, WARNING, INFO, DEBUG, TRACE выборочно для любого пакета или по умолчанию на корневой Leve.
Это описан в конфигурации playframework configuring logging
Обратите внимание, что такое поведение было changed in 2.4.x от предыдущих версий, где можно настроить регистратор через application.conf
После регистрации работает вы можете использовать протоколирование образца фильтр provided in the documentation для регистрации всех запросов на ваш сервер.
import javax.inject.Inject
import akka.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 {
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} took ${requestTime}ms and returned ${result.header.status}")
result.withHeaders("Request-Time" -> requestTime.toString)
}
}
}
вам придется активировать его, установив play.http.filters
:
play.http.filters=com.example.LoggingFilter
Спасибо Жан! Я пробовал это, но он не дает мне никакой информации о том, как мой запрос маршрутизируется, какой контроллер и действие вызваны и так далее. Например, в приложении RoR я всегда вижу любой запрос на сервер разработки. Но «Игра не дает мне ничего». Даже когда я устанавливаю уровень DEBUG для корневого регистратора, я вижу много информации о загрузке классов, а не о запросах. –
Так выглядит, что нет способа получить его бесплатно. Еще раз спасибо! –