Example #1
0
        private void LogWithMessageInfo(
            LogLevel logLevel,
            EventId eventId,
            Exception?exception,
            string logMessage,
            IRawBrokerEnvelope envelope,
            ISequence?sequence,
            Guid?consumerId)
        {
            if (!_logger.IsEnabled(logLevel))
            {
                return;
            }

            Check.NotEmpty(logMessage, nameof(logMessage));

            var arguments = GetLogArguments(envelope, sequence, consumerId, ref logMessage);

            if (exception != null)
            {
                _logger.Log(logLevel, eventId, exception, logMessage, arguments);
            }
            else
            {
                _logger.Log(logLevel, eventId, logMessage, arguments);
            }
        }
Example #2
0
        private object?[] GetLogArguments(IRawBrokerEnvelope envelope, ISequence?sequence, ref string logMessage)
        {
            if (envelope == null)
            {
                return(Array.Empty <object>());
            }

            if (envelope is IRawInboundEnvelope inboundEnvelope)
            {
                return(sequence == null
                    ? GetInboundLogArguments(inboundEnvelope, ref logMessage)
                    : GetInboundSequenceLogArguments(inboundEnvelope, sequence, ref logMessage));
            }

            return(GetOutboundLogArguments(envelope, ref logMessage));
        }
Example #3
0
        private object?[] GetOutboundLogArguments(IRawBrokerEnvelope envelope, ref string logMessage)
        {
            logMessage += LogTemplates.GetOutboundMessageLogTemplate(envelope.Endpoint);

            var arguments = new List <object?>
            {
                envelope.Endpoint.Name,
                envelope.Headers.GetValue(DefaultMessageHeaders.MessageType),
                envelope.Headers.GetValue(DefaultMessageHeaders.MessageId)
            };

            foreach (string key in LogTemplates.GetOutboundMessageArguments(envelope.Endpoint))
            {
                arguments.Add(envelope.AdditionalLogData.TryGetValue(key, out string value) ? value : null);
            }

            return(arguments.ToArray());
        }