public async Task Invoke(HttpContext context) { try { var requestBodyContent = await ReadRequestBody(context.Request); LoggingHelper.SetProperty("RequestContent", requestBodyContent); var originalBodyStream = context.Response.Body; using (var responseBody = new MemoryStream()) { var response = context.Response; response.Body = responseBody; await _next(context); var responseBodyContent = await ReadResponseBody(response); await responseBody.CopyToAsync(originalBodyStream); LoggingHelper.SetProperty("ResponseContent", responseBodyContent); LoggingHelper.SetProperty("CustomLog", LoggingHelper.GetLogStep()); } } catch { await _next(context); } }