首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >捕获浏览器功能的log4net上下文

捕获浏览器功能的log4net上下文
EN

Stack Overflow用户
提问于 2015-03-10 12:18:44
回答 1查看 273关注 0票数 1

我想在log4net中使用日志浏览器功能来实现自定义属性。这里使用的最好的上下文是什么?

  • log4net.GlobalContext
  • log4net.ThreadContext
  • log4net.ThreadLogicalContext
  • log4net.Core.LoggingEvent
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-11 07:48:03

正如您在链接的页面中所看到的,以下是所有这些上下文的预期差异:

  • 全局上下文由当前AppDomain中的所有线程共享。此上下文是线程安全的,可由多个线程并发使用。
  • 线程上下文仅对当前托管线程可见。
  • 逻辑线程上下文对逻辑线程是可见的。逻辑线程可以从一个托管线程跳到另一个托管线程。有关详细信息,请参阅.NET API System.Runtime.Remoting.Messaging.CallContext.。
  • 每个事件在生成事件时捕获当前上下文状态。可以在事件本身上设置上下文数据。此上下文仅对生成事件本身的代码可见。

如您所见,上下文会影响您的财产所在的范围。因为您想要记录浏览器功能,所以您是在一个web应用程序中,所以我想应该是多个线程。如果要将属性保存在共享上下文(全局)中,则可能会丢失信息。我不确定线程上下文,因为线程在等待某些异步数据时可能会接收到其他请求。

最后,事件上下文似乎是最安全和最符合逻辑的选择,因为您肯定会在每个浏览器(或每个请求)中记录一个事件,并且不需要与其他记录器共享这些信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28963554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档