Example #1
0
        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);
            }
        }