Мне нужно добавить correlationId в мой контекст ведения журнала, и я сделал это в своем проекте MVC, добавив в проект Nuget CorrelationId и настроив его промежуточное ПО, но я не смог сделать то же самое в функциях Azure.
Я загрузил ICorrelationContextAccessor с помощью внедрения зависимостей, а затем установил свой коэффициент корреляции следующим образом:
[FunctionName("func1")]
public async Task Run([ServiceBusTrigger("mytopic", "MySubscription", Connection = "ServiceBusConnectionString")]Message message)
{
_correlationContextAccessor.CorrelationContext = _correlationContextFactory.Create(message.CorrelationId, "X-Correlation-ID");
_logger.LogInformation($"C# ServiceBus topic trigger function processed message: {message.MessageId}, {Encoding.UTF8.GetString(message.Body)}");
Он работает нормально, и я вижу мой correlationId в строке журнала ниже и в моих службах в функции. Единственная часть, которую я пропускаю, - это то, что у меня есть журналы, касающиеся начала и конца функции, у которой все еще нет correlationId, что имеет смысл, когда функция хочет регистрировать, что она получила сообщение, что correlationId не установлен.