Пользовательский аппендер Log4Net, укажите, где найти имя пользователя

У меня есть собственный WcfAppender, используемый различными проектами (wpf, web и т. д.). Я хочу зарегистрировать имя пользователя, однако в проектах используются разные технологии (проверка подлинности Windows, федеративная безопасность и т. д.), и я не хочу писать тесно связанный код с конкретной технологией проверки подлинности. Могу ли я как-то сказать аппендеру, как найти имя пользователя, установив действие или подобное? Каковы лучшие практики в отношении пользовательских приложений log4net?


person jaspernygaard    schedule 31.01.2013    source источник


Ответы (1)


Я задал аналогичный вопрос около года назад, но я не уверен, что есть отличное решение, кроме использования ThreadContext и установки переменной, которая хранит имя пользователя при каждом отдельном вызове wcf, например:

//You would need to get currentUserLoggedIn 
log4net.ThreadContext.Properties["user"] = currentUserLoggedIn;

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

log4net с использованием ThreadContext.Properties в службе wcf PerSession

person Cole W    schedule 04.02.2013