In Application_PostAcquireRequestState
, set the username via the ThreadContext:
protected void Application_PostAcquireRequestState(object sender, EventArgs e)
{
// Make sure there's a Session in this request if you need it
if (Context.Handler is IRequiresSessionState)
{
var username = Session["UserName"];
log4net.ThreadContext.Properties["username"] = username ;
}
}
Then, in your config file you have this:
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{username}" />
</layout>