Это тот фильтр, который я использую.
package filters;
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.getHeaders().toMap(), requestHeader.uri(), requestTime, result.status());
return result.withHeader("Request-Time", "" + requestTime);
});
}
public CompletionStage<Result> Response(
Function<ResponseHeader, CompletionStage<Result>> nextFilter,
ResponseHeader responseHeader) {
long startTime = System.currentTimeMillis();
return nextFilter.apply(responseHeader).thenApply(result -> {
long endTime = System.currentTimeMillis();
long responseTime = endTime - startTime;
Logger.info("{} took {}ms and returned {}",
responseHeader, responseTime, result.status());
return result.withHeader("Request-Time", "" + responseTime);
});
}
}
Я знаю, что создал неправильный метод для ответа, но я также новичок в этом java и фильтре. но я застрял здесь, если кто-нибудь знает о методе mdc / interceptor для игровой платформы, любезно помогите в этом же. Спасибо