Serilog logcontext.pushproperty не запускает распоряжение для удаления свойствC#

Место общения программистов C#
Anonymous
 Serilog logcontext.pushproperty не запускает распоряжение для удаления свойств

Сообщение Anonymous »

У меня есть следующий код: < /p>

Код: Выделить всё

var calculationsTask = request.CalcEngines.ForEachAsync(
new ParallelOptions
{
MaxDegreeOfParallelism = int.MaxValue,
CancellationToken = cancellationToken
},
async ( item, ct ) =>
{
var calculationId = Guid.NewGuid();
var calculationStopwatch = Stopwatch.StartNew();

LogContext.PushProperty( "calculationId", calculationId );

await Task.Delay( 1, ct ); // simulate async work
}
);
var calculationResponses = await calculationsTask;
logger.LogInformation( "Test log" );
my foreachasync () является реализацией из этого поста.
В основном, независимо от того, что я делаю, logger.loginformation содержит расчеты . Я пробовал: < /p>
  • Код: Выделить всё

    using var _ = LogContext.PushProperty( .. );
  • Код: Выделить всё

    using ( var _ = LogCOntext.PushProperty( .. ) ) { .. }
  • I've moved entire lambda body to separate function and simply assigned parameter as body: RunCalculation.
Тем не менее, у меня есть промежуточное программное обеспечение, которое работает после текущего обработчика API, и его детали журнала не содержит расчеты .
является тем, что ожидаемое поведение pushproperty ? ​​>

Подробнее здесь: https://stackoverflow.com/questions/794 ... properties

Вернуться в «C#»