我在几个地方读到 log4net threadContext 在 asp.net 场景中使用是不安全的。这里有几篇文章:
Log4Net、ThreadContext 和 Global.asax
http://piers7.blogspot.com/2005/12/log4net-context-problems-with-aspnet.html
所以我的场景是我想在 IIS 中托管的 WCF 层中使用 threadContext。线程上下文会好吗?我认为“单一”的并发模式可以做到这一点。
我在几个地方读到 log4net threadContext 在 asp.net 场景中使用是不安全的。这里有几篇文章:
Log4Net、ThreadContext 和 Global.asax
http://piers7.blogspot.com/2005/12/log4net-context-problems-with-aspnet.html
所以我的场景是我想在 IIS 中托管的 WCF 层中使用 threadContext。线程上下文会好吗?我认为“单一”的并发模式可以做到这一点。
由于 Log4net 是线程安全的,我不希望出现问题。
我已经使用 log4net 线程上下文来记录在 asp.net 应用程序和 wcf 服务中遇到错误的用户的身份。我没有遇到任何问题。这不是一个确定的答案,但您始终可以将您的服务与日志框架分离并测试 log4net 和线程上下文。如果您遇到任何问题,请删除您的线程上下文逻辑或插入一个新的日志框架,对您的服务逻辑影响最小。
我已经设置了一个 WCF 服务,托管在 IIS6 中,它使用 log4net 没有问题,无论并发模式如何。使用 threadContext 应该不是问题。
唯一需要注意的是,如果您将外部文件中的 log4net 设置加载到 WCF 层中,您可能必须在 IIS 中重新启动它以获取更改。