Я использую ASP.NET MVC и servicestack.logging
Я использовал log4net.
Мне нужно получить текущего пользователя, прошедшего аутентификацию servicestack-jwt.
С приведенным ниже кодом в моей веб-конфигурации я просто получаю windows текущего пользователя.
<appender type="log4net.Appender.RollingFileAppender" name="User_Log">
<file value="C:\logging\user_log\" />
<datePattern value="dd.MM.yyyy'.log'" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<header type="log4net.Util.PatternString" value="[START LOG] %newline" />
<footer type="log4net.Util.PatternString" value="[END LOG] %newline" />
<conversionPattern value="[%property{log4net:HostName}] - [%username] - [%identity] - [%w] -%identity%newline%utcdate - %-5level - %message%newline" />
</layout>
Я также использовал приведенный ниже код в Global.asax
protected void Application_Start()
{
ServiceStack.Logging.LogManager.LogFactory = new ServiceStack.Logging.Log4Net.Log4NetFactory(true);
//I can save test
Logger.InfoFormat("test");
string name = "";
HttpContext context = HttpContext.Current;
if (context != null && context.User != null && context.User.Identity.IsAuthenticated)
{
name = context.User.Identity.Name;
}
//I can NOT save name
_logger.InfoFormat(name);
}
Любая помощь?
Спасибо.