pro*_*dad 5 asp.net log4net session-variables
我们的Web应用程序捕获用户的登录信息并将其存储在会话变量中,类似于Session("User_Id").我想使用log4net来捕获日志中的用户.
我看到一些使用MDC(Mapped Diagnostic Context)的引用已经被ThreadContext属性所取代.
有没有人实现这个ThreadContext方法?有什么建议?
在代码中...
log4net.ThreadContext.Properties["Log_User"] = userName;
Run Code Online (Sandbox Code Playgroud)
在 web.config 中
<appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
<bufferSize value="1" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="set in global.asax" />
<commandText value="INSERT INTO Log4Net ([Log_Date], [Severity],[Application],[Message], [Source], [Log_User]) VALUES (@log_date, @severity, @application, @message, @source, @currentUser)" />
<parameter>
<parameterName value="@log_date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
...
<parameter>
<parameterName value="@currentUser" />
<dbType value="String" />
<size value="100" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{Log_User}" />
</layout>
</parameter>
</appender>
Run Code Online (Sandbox Code Playgroud)