log4net.ThreadLogicalContext 和 log4net.ThreadContext 有什么区别

2023-12-15

不太明白官方文档的解释:

逻辑线程可以从一个托管线程跳转到另一个托管线程。

ThreadContext 和 ThreadLogicalContext 有什么区别? 有人可以详细说明一下吗?

Thanks.


我应该回去并将其添加到我自己的问题中(Stefan Egli 在上面链接)......

据我所知,两者之间几乎没有实际差异。

ThreadContext 将信息存储在使用 Thread.SetData 存储的字典中。

ThreadLogicalContext 将其信息存储在使用 CallContext 存储的字典中。

CallContext中存储的信息几乎相同 可访问性作为使用 Thread.SetData 存储的信息。也就是说,首先存储该信息的线程可以访问该信息。

现在,如果 ThreadLogicalContext 使用 CallContext.LogicalSetData(或者如果使用 CallContext.SetData 存储的字典实现了标记接口 IThreadAffinative),那么将会有很大的差异。在这种情况下,可以在同一线程中访问存储的任何信息 (LogicalSetData),并将其传递给子线程。此外(与逻辑线程一起流动), 信息可以跨远程调用和跨应用程序域流动(如果数据是可序列化的)。

我本想添加一些链接,但我是在 iPhone 上工作,所以有点尴尬。 Stefan Egli 上面发布的链接中有一些很好的链接。

另外,请参阅 Jeffrey Richter 9 月份的博客,获取有关 CallContext.LogicalSetData 的文章。我使用他的测试程序作为比较 CallContext.SetData 与 CallContext.LogicalSetData 与 Thread.SetData 与 [ThreadStatic] 的基础。上次检查是最后一次 他发布的东西。

当我可以轻松访问计算机时,我会尝试回来发布更多链接和/或一些示例代码。

祝你好运!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

log4net.ThreadLogicalContext 和 log4net.ThreadContext 有什么区别 的相关文章

  • 为 log4net 中类的每个实例创建日志的最佳方法是什么?

    我们有几个长期存在的对象 每个对象都在系统中属于同一类 大约只有 5 或 6 个 它们是与外部系统的连接 我希望每个实例都有自己可以登录的文件 做这个的最好方式是什么 我现在只能看到以编程方式添加记录器作为答案 更新 我想避免使用配置文件
  • log4net %属性不起作用

    我有一个小型测试项目 代码如下 class Program static void Main string args log4net GlobalContext Properties logFileName log txt log4net
  • System.Diagnostics.Debug 命名空间与其他日志记录解决方案(log4net、MS Enterprise Library 等)

    我目前正在研究 net 项目的各种日志记录可能性 但我无法在 System Diagnostics Debug Trace 功能和第三方库 如 log4net MS Enterprise Library NLog 等 之间做出决定 目前我已
  • log4net的线程安全

    似乎有一些关于log4net是否线程安全的讨论 共识是框架是线程安全的 但appender不是 需要正确使用才能实现线程安全 有人可以对此进行一些说明 并可能给出以线程安全方式使用 RollingFileAppender 的示例吗 是否需要
  • 秋季创作者更新性能问题

    最近的 Windows 10 更新 秋季创意者更新 之后 我们的 NET c 4 0 应用程序的性能下降了很多 我认为存在各种问题 其中之一是 log4net 或磁盘 IO 我们的应用程序非常复杂 各种 WCF 应用程序和 ASPNET M
  • 根据方法名称过滤 log4net - 不太明白

    我使用 log4net 来记录我的 Web 应用程序的进度 使用 Log4PostSharp 来 AOP 注入所有方法 这达到了记录 几乎 所有内容的预期效果 并且很好 我现在需要将 Page Load 方法记录到文件 控制台 显然 我可以
  • 无法从配置节“common/logging”获取 Common.Logging 的配置

    我正在尝试使用以下日志记录程序集配置控制台应用程序 Common Logging dll 2 1 0 0 Common Logging Log4Net1211 dll 2 1 0 0 log4net dll 1 2 11 0 如果记录器以编
  • 使用 FileSystemWatcher 观察 log4net 日志文件

    我创建了简单的 WPF 控件来监视日志文件中的更改 我使用 FileSystemWatcher 来监视特定文件 我的配置 Directory System IO Path GetDirectoryName logFileFullPath F
  • Biztalk Log4Net [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 有人在 Biztalk 中使用过 log4net 吗 我们目前正在考虑使用它 并试图了解它的优点 缺点 以及它是否能满足我们的需求 我已经将 L
  • ASP.NET 日志记录 - log4net 或运行状况监控?

    我正在查看 3 5 中的一个新的 asp net 站点 它完全没有错误处理或日志记录 记录和处理错误有哪些好的选择 我在 1 1 框架上使用了 Log4Net 但听说 3 5 中可能有更好的选择 一种选择是 ELMAH 我在这里问了一个关于
  • log4net可以输出Json吗?

    我见过 log4net 的几个扩展 它们声称为日志文件创建 json 但格式永远不是有效的 json 这意味着集合不在数组中 也不是逗号分隔的 我使用它是错误的还是没有办法将 log4net 与 json 一起使用
  • 配置log4net根据日志级别写入不同的文件

    我正在设置 log4net 并希望在 debug log 中写入调试消息 在 info log 中写入信息消息等 为此 我使用了几个附加程序 例如
  • Log4net keepLo​​gFileNameExtension 不起作用

    这是我的 log4net 配置 滚动日志文件创建的扩展名错误 第一个文件使用 log debug txt 名称创建 滚动文件使用 log debug txt 1 创建 但理想情况下它应该是 log debug 1 txt 我使用preser
  • 如何使用 Log4net RolloverFileAppender 在应用程序启动时强制翻转?

    在我们的应用程序中配置 Log4Net 以使用带日期标记的名称和 10Meg 文件大小限制 这会在午夜以及每当达到 10Meg 限制时自动转存到新文件 我还想在每次启动 或关闭 应用程序时将日志记录到一个新文件 我可以获得所有三种翻转行为吗
  • 使用 Loggly 时在 log4net 中指定应用程序名称

    我正在测试几个 ASP NET Web 应用程序 并使用 Log4net 的附加程序通过 Loggly 设置它们 现在 日志记录似乎没问题 但我似乎找不到一种方法 使用 log4 loggly 附加程序 来指定应用程序名称 以便当我在 Lo
  • 如何禁止在应用程序启动时创建空日志文件?

    我已经在我的应用程序中成功配置了 log4net 但有一件事对我来说有点烦人 即使没有发生错误 日志文件也会在我的应用程序启动后创建 空 我想仅在出现错误后才创建日志文件 我实际上在这个线程中找到了一种方法来做到这一点 http www l
  • log4net 未记录到数据库

    我有一个奇怪的问题 我的 log4net 设置没有将任何数据记录到数据库中 也没有引发任何异常来通知问题 我已经在一个名为 Log4net Config 的单独文件中定义了配置设置 并且 已经在程序集中引用了它 请注意 我通过 nuget
  • 是否可以使用环境变量来为基于 log4net 的日志系统指定所需的日志级别?

    我们使用 log4net 进行日志记录 我想知道在指定日志级别时是否可以使用环境变量 动机很简单 我们的 QA 人员不必编辑配置文件 他们只需设置一次特定的环境变量 简而言之 我们不想将配置文件中的日志级别设置为某个恒定值 因为相同的构建由
  • System.IO.FileLoadException:无法加载文件或程序集 Log4net

    我将现有项目添加到我的解决方案中 当我使用 MSTest 运行程序运行所有单元测试时 在几个测试中出现以下错误 消息 测试方法 soandso 抛出异常 System IO FileLoadException 无法加载文件或程序集 log4
  • Log4net不会将日志写入日志文件

    我使用 Log4net 创建了一个简单的场景 但我的日志附加程序似乎不起作用 因为消息没有添加到日志文件中 我将以下内容添加到 web config 文件中

随机推荐