首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除ThreadContext属性

删除ThreadContext属性
EN

Stack Overflow用户
提问于 2011-10-01 01:00:20
回答 2查看 1.5K关注 0票数 3

我已经设置了ThreadContext.Properties,并且需要在代码的生命周期中更新它的值。在过去,我使用过log4j MDC,而且不得不这样做:MDC.remove(跟踪);

然后添加另一个值: MDC.put(TRACKING,trackingIdStr);

现在我使用了跟踪器,我们的应用程序使用了属性: log4net.ThreadContext.Properties"TrackingId“= Log4Net;

问:如何删除前一个值并添加一个新值?是不是就像这样简单: log4net.ThreadContext.Properties"TrackingId“= tracker2;

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-01 10:52:43

是的,就是这么简单。“您可以按照问题中的说明进行重新分配,也可以在完成后完全删除该值。”

代码语言:javascript
复制
//set
ThreadContext.Properties["TrackingId"] = tracker1;

//reset
ThreadContext.Properties["TrackingId"] = tracker2;

//completely remove
ThreadContext.Properties.Remove("TrackingId");

如果你想让你的上下文属性对特定的代码段生效(通过使用),那么你可以尝试ThreadContext.Stacks:

代码语言:javascript
复制
using(ThreadContext.Stacks["TrackingId"].Push("hello"))
{
  //messages logged here will be tagged with TrackingId="hello"
}
//messages logged here will not be tagged with TrackingId="hello"
票数 3
EN

Stack Overflow用户

发布于 2011-10-05 15:27:51

也许这不能直接回答您的问题,但在您的情况下,您可以考虑使用计算的上下文值。这里很好地解释了这一点:

Log4Net Tutorial pt 6: Log Event Context

(向下滚动一点)

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

https://stackoverflow.com/questions/7613654

复制
相关文章

相似问题

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