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); } }
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)); }
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()); }