我已经设置了ThreadContext.Properties,需要在我的代码的生命周期中更新它的值。过去我使用过log4j MDC并且不得不: MDC.remove(跟踪);
然后通过以下方式添加另一个值: MDC.put(TRACKING,trackingIdStr);
现在我正在使用Log4Net,我们的应用程序使用属性: log4net.ThreadContext.Properties [“TrackingId”] = tracker;
问题:如何删除以前的值并添加新值?是否像以下一样简单: log4net.ThreadContext.Properties [“TrackingId”] = tracker2;
答案 0 :(得分:3)
是的,就这么简单。您可以按照问题中的显示进行重新分配,也可以在完成后完全删除该值。
//set
ThreadContext.Properties["TrackingId"] = tracker1;
//reset
ThreadContext.Properties["TrackingId"] = tracker2;
//completely remove
ThreadContext.Properties.Remove("TrackingId");
如果您希望您的上下文属性对特定代码段有效(通过使用),那么您可以尝试ThreadContext.Stacks:
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"
答案 1 :(得分:0)