0
我想在运行时发送任意参数到log4net。是否可以即时定义参数并将它们发送出去?我知道你可以这样定义全局PARAMS:发送多个参数到log4net
log4net.GlobalContext.Properties["MyColumn"] = "MyValue";
,但我的线沿线的思考更多:
myArrayOfCoolStuff["IP"] = "127.0.0.1";
myArrayOfCoolStuff["UserName"] = "jbleaux";
log.Error(myArrayOfCoolStuff);
鉴于log4net的如何趋于默默地消失,当你给它的垃圾,我希望找到专业知识而不是仅仅尝试它。有关如何做到这一点的任何建议?
Neato。有一个请求设置threadContext和另一个请求使用它的asp.net情况下是否存在风险?我担心用Alice的IP或其他东西来记录Alice的错误。 – 2011-02-28 14:23:43
如果您将信息留在线程上下文中“更长”的时间段,这肯定会成为问题。但是,您可以将信息存储在会话中,并在“写入”(全局)上下文属性时访问会话。 – 2011-02-28 14:58:03
我最终在扩展方法中做了这个,只是在日志对象周围放上一个锁(log){},它似乎可以工作。这是一个性能问题,但是这个代码只能用于异常处理,所以锁的性能是我们最担心的。谢谢。 – 2011-02-28 16:31:37