khaled Ezzat Abdelfattah Abdelgawad Ответов: 0

После await next когда я пытаюсь использовать serilog logcontext он не толкает какое либо свойство для регистрации сообщений


Устанавливая все для Serilog и SEQ, я застрял в вопросе, на который у вас может быть ответ. Я пытаюсь добавить некоторые свойства ко всем журналам с помощью LogContext.PushProperty. Однако в моем промежуточном программном обеспечении (см. рисунок ниже) LogContext может передавать свойство в журналы раньше await next.Invoke(). В то время как после await next, когда я пытаюсь использовать LogContext, он не толкает какое-либо свойство для регистрации сообщений. Проблема в том, что претензии всегда пусты перед тем, как await next.Invoke() и у них есть только значения после await next, поэтому я вынужден использовать LogContext после await, но он там не работает, как уже упоминалось. Пожалуйста, посоветуйте, есть ли у вас ключ к разгадке?

Спасибо,

Что я уже пробовал:

// var user2 = context.User as IAMClaimsUser;
// if (user2 != null && !string.IsNullOrEmpty(user2.FirstName))
// {
//     LogContext.PushProperty("UserEmail", user2.Email);
// }

await next.Invoke();

var user2 = context.User as IAMClaimsUser;
if (user2 != null && !string.IsNullOrEmpty(user2.FirstName))
{
    LogContext.PushProperty("UserEmail2", user2.Email);
}

Richard Deeming

Что-то в цепочке промежуточного программного обеспечения заменяет пользователя объектом, который не реализует IAMClaimsUser интерфейс.

Вам нужно будет отладить свой код, чтобы выяснить, почему. Мы не можем сделать это для вас.

0 Ответов