Log4Net 记录不正确的数据

本文关键字:数据 不正确 记录 Log4Net | 更新日期: 2023-09-27 18:36:13

我有一个WCF服务,我使用Log4Net将信息记录到Sql Server数据库。我使用Log4Net的GlobalContext来记录一些额外的信息,如交易名称,状态,消息和其他一些东西。该系统中的一些重要事务是读取,写入和登录。

日志应如下所示:

  • "读取"--------"成功"--------"读取 xxx 客户数据"
  • "写入"--------"成功"--------"写入 xxx 客户数据"
  • "登录"--------"失败"--------"用户会话已存在"。

当我运行正常测试时,一切正常 - 日志完美地写入数据库。但是,最近我使用 JMeter 进行了负载测试。上述三个事务在 100 个并发线程中进行了 3 分钟的测试。当我检查数据库日志时,我发现某些信息记录不正确。

前任:

  • "读取"--------"成功"--------"用户会话已存在"。
  • "写入"--------"成功"--------"读取 xxx 客户数据"

这是 Log4Net GlobalContext 不是线程安全的问题吗?我尝试使用ThreadContext而不是GlobalContext,但看起来没有记录很多信息。

Log4Net 记录不正确的数据

LogicalThreadContext为我做了这个伎俩!