asp.net - 使用带有 ASP.NET 的 log4net 来跟踪 session 变量

标签 asp.net log4net session-variables

我们的 Web 应用程序捕获用户的登录信息并将其存储在 session 变量中,类似于 Session("User_Id")。我想使用 log4net 来捕获日志中的用户。

我看到一些使用 MDC(映射诊断上下文)的引用已被 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>

关于asp.net - 使用带有 ASP.NET 的 log4net 来跟踪 session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1020331/

相关文章:

javascript - 将一段js翻译成asp.net(涉及regex)

javascript - 使用 JavaScript 的十进制验证未按预期工作

.net - ASP.NET 服务器控件和 <%$ %> 参数,如 ConnectionStrings

php - 在 phpmyadmin 中使用 session 变量创建表

mysql - 使用准备好的查询在存储过程中创建多个临时表不起作用

asp.net - ViewData、ViewBag 和 TempData 有什么区别?

javascript - Uncaught ReferenceError : $ is not defined Webpack and embedded script

logging - 如何在 log4net ADONetAppender 中使用存储过程?

c# - 为什么 log4net 在配置之前创建一个空日志文件?

log4net - 什么是log4net中的root记录器