Ответ 1
Вы можете использовать функцию "контекст" в log4net. В основном это позволяет вам устанавливать свойства, которые затем можно использовать в вашем приложении для журналов. Вы можете установить эти свойства в разных областях (Global, Thread и т.д.). В вашем случае, я думаю, вы могли бы пойти (например, сразу после входа пользователя):
log4net.ThreadContext.Properties["userid"] = userid;
В вашем файле конфигурации вы можете использовать это свойство и добавить его в приложение регистрации. Я думаю, что это будет что-то вроде этого для AdoNetAppender
<parameter>
<parameterName value="@userid" />
<dbType value="guid" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{userid}" />
</layout>
</parameter>
Обратите внимание, что я не компилировал ни один из вышеперечисленных фрагментов, поэтому им может потребоваться некоторая настройка, но это должно дать вам общее представление о том, как это можно решить.
Вы можете прочитать об этом здесь.
Ps. Я думаю, что MDC.Set, упомянутый в первом ответе, устарел.