public function __invoke(ServerRequestInterface $request, ResponseInterface $response, callable $next)
{
if (!self::hasAttribute($request, ClientIp::KEY)) {
throw new RuntimeException('AccessLog middleware needs ClientIp executed before');
}
$response = $next($request, $response);
$message = $this->combined ? self::combinedFormat($request, $response) : self::commonFormat($request, $response);
if ($response->getStatusCode() >= 400 && $response->getStatusCode() < 600) {
$this->logger->error($message);
} else {
$this->logger->info($message);
}
return $response;
}