2
私は次のメソッドシグネチャの周りを頭で囲んでいます。私は、logAccessは2つのパラメータリストを取り、戻り値の型がLogEntryである関数を返す関数だと考えています。スカラ関数:戻り値の型は何ですか。
返品の種類は、遅く評価されたRouteResult
です。
def logAccess(remoteAddress: RemoteAddress, start: Long)(request: HttpRequest): RouteResult => Option[LogEntry] = {
case RouteResult.Complete(result) =>
val ip = remoteAddress.toOption.map(_.getHostAddress)
val state = sisCache.get
statsWriter.recordAccess(state, request.uri.toString, request.method.name, ip, result.status.intValue, time.ms - start)
Some(LogEntry(s"state: $state, clientIP: $ip, uri: ${request.uri}, method: ${request.method.name}, status: ${result.status}, took: ${time.ms - start}ms", InfoLevel))
case RouteResult.Rejected(rejections) =>
None
}