我们的Web应用程序捕获用户的登录信息并将其存储在会话变量中,类似于Session(“User_Id”).我想使用log4net来捕获日志中的用户.
我看到一些使用MDC(Mapped Diagnostic Context)的引用已经被ThreadContext属性所取代.
有没有人实现这个ThreadContext方法?有什么建议?
解决方法
在代码中……
log4net.ThreadContext.Properties["Log_User"] = userName;
在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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。