Я хотел бы показать в моих журналах время, которое может принимать каждый запрос или действие.Как добавить фильтры запросов в платформе Play?
Я добавил этот класс к своему контроллеру, но ничего не произошло в моем журнале !!!! Что мне делать, чтобы показать время запроса в моем журнале, пожалуйста?
заблаговременно. Reference of Class
import java.util.concurrent.CompletionStage;
import java.util.function.Function;
import javax.inject.Inject;
import akka.stream.Materializer;
import play.Logger;
import play.mvc.*;
public class LoggingFilter extends Filter {
@Inject
public LoggingFilter(Materializer mat) {
super(mat);
}
@Override
public CompletionStage<Result> apply(
Function<Http.RequestHeader, CompletionStage<Result>> nextFilter,
Http.RequestHeader requestHeader) {
long startTime = System.currentTimeMillis();
return nextFilter.apply(requestHeader).thenApply(result -> {
long endTime = System.currentTimeMillis();
long requestTime = endTime - startTime;
Logger.info("{} {} took {}ms and returned {}",
requestHeader.method(), requestHeader.uri(), requestTime, result.status());
return result.withHeader("Request-Time", "" + requestTime);
});
}
}
Вы добавили фильтр в цепочку фильтров? См. Https://www.playframework.com/documentation/2.5.x/JavaHttpFilters#Using-filters – Roman
Hell Roman, Что вы подразумеваете под цепочкой фильтров? Мне нужно добавить этот класс в контроллер рядом с первым? – user3761024
Вы настроили фильтры в своем конфиге? Пожалуйста, перейдите по ссылке, предоставленной @Roman, которая показывает, что собирает все ваши фильтры и настраивается. Это цепочка. – rethab