private HttpKinesisDocument BuildKinesisDocument(HttpCommunicationEventArgs evtArgs)
        {
            var doc = new HttpKinesisDocument
            {
                RequestSentAtUtc      = evtArgs?.Response?.SentAtUtc,
                ResponseReceivedAtUtc = evtArgs?.Response?.CompletedAtUtc,
                TotalElapsedTimeMs    = (long?)evtArgs?.Response?.ResponseTime.TotalMilliseconds,

                Url           = evtArgs?.Request.FullUri,
                Method        = evtArgs?.Request.Method.ToString(),
                StatusCode    = (int)evtArgs?.Response?.StatusCode,
                TransactionId = evtArgs?.Response?.TransactionId.ToString(),

                RequestHeaders = FlattenHeaders(evtArgs?.Request?.Headers),
                RequestBody    = evtArgs?.Request?.GetBodyAsString(),

                ResponseHeaders = FlattenHeaders(evtArgs?.Response?.Headers),
                ResponseBody    = string.Empty,

                Exception = evtArgs.CaughtException
            };

            if (evtArgs?.Response?.IsBodyInMemory ?? false)
            {
                doc.ResponseBody = evtArgs.Response.GetBodyAsString();
            }

            return(doc);
        }
        private void HandleRequestCompletedEvent(object sender, HttpCommunicationEventArgs evtArgs)
        {
            var sb = new StringBuilder();

            sb.AppendLine("\n");
            sb.AppendLine("===============================================");

            //Request
            sb.AppendLine(evtArgs.Request == null ? "No Request" : FormatRequestForLog(evtArgs.Request));

            //Exception
            if (evtArgs.CaughtException != null)
            {
                sb.AppendLine("Exception:");
                sb.AppendLine($"{evtArgs.CaughtException}");
                sb.AppendLine();
            }

            //Response
            if (evtArgs.Response != null)
            {
                sb.AppendLine(evtArgs.Response == null ? "No Response" : FormatResponseForLog(evtArgs.Response));
            }

            sb.AppendLine("===============================================");

            _consoleLogger.Log(LogLevel.Info, sb.ToString(), null);
        }
        private void HandleRequestCompletedEvent(object sender, HttpCommunicationEventArgs evtArgs)
        {
            var document = BuildKinesisDocument(evtArgs);

            if (_cfg.IsEnabled)
            {
                _kinesisLogger.LogDocument(
                    KinesisIndexeAndTypeConstants.HTTP.Index,
                    KinesisIndexeAndTypeConstants.HTTP.DocumentType,
                    document);
            }
        }