0
the official document,このロギングフィルタを見ました。再生用簡易ロギングフィルタ
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);
});
} }
これは基本的な質問ですが、このフィルタの設定を行う必要はありませんか? PlayApplicationでこのフィルタクラスを作成した後、このフィルタはすべてのリクエストに適用できますか?
次に、nextFilter
が次の動作であると説明します。しかし、ここには何も設定されていないようです。したがって、この場合、どのようなアクションが実行されますか?
誰でも説明できますか?