После 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
интерфейс.
Вам нужно будет отладить свой код, чтобы выяснить, почему. Мы не можем сделать это для вас.