/// <summary>
        /// Handles logging of the message to Loupe
        /// </summary>
        /// <param name="logRequest">A request received from the agent to log information</param>
        public virtual void Log(LogRequest logRequest)
        {
            if (logRequest.LogMessages is null || logRequest.LogMessages.Count == 0)
            {
                return;
            }

            var detailsBlockBuilder = new LogMessageBlockBuilder(logRequest);
            var sourceProvider      = new JavaScriptSourceProvider();

            foreach (var logMessage in logRequest.LogMessages)
            {
                var jsException = CreateJavaScriptException(logMessage);

                var detailsBlock = detailsBlockBuilder.Build(logMessage);

                var messageSource = sourceProvider.ProcessMessage(logMessage);

                _log.Write(logMessage.Severity,
                           "Loupe",
                           messageSource,
                           logRequest.User,
                           jsException,
                           LogWriteMode.Queued,
                           detailsBlock,
                           logMessage.Category,
                           logMessage.Caption,
                           logMessage.Description,
                           logMessage.Parameters);
            }
        }
        /// <summary>
        /// Handles logging of the message to Loupe
        /// </summary>
        /// <param name="logRequest">A request received from the agent to log information</param>
        public virtual void Log(LogRequest logRequest)
        {
            var detailsBlockBuilder = new LogMessageBlockBuilder(logRequest);
            var sourceProvider      = new JavaScriptSourceProvider();

            foreach (var logMessage in logRequest.LogMessages)
            {
                var jsException = CreateJavaScriptException(logMessage);

                var detailsBlock = detailsBlockBuilder.Build(logMessage);

                var messageSource = sourceProvider.ProcessMessage(logMessage);

                Gibraltar.Agent.Log.Write(logMessage.Severity,
                                          "Loupe",
                                          messageSource,
                                          "",
                                          jsException,
                                          LogWriteMode.Queued,
                                          detailsBlock,
                                          logMessage.Category,
                                          logMessage.Caption,
                                          logMessage.Description,
                                          logMessage.Parameters);
            }
        }