log4net AdoNetAppender是线程安全的吗?

时间:2015-07-16 13:47:30

标签: multithreading log4net

Log4net FAQ表示 log4net 是线程安全的:

  

问题:log4net线程安全吗?

     

答案:是的,log4net是线程安全的。

但是,AdoNetAppender class的手册说明如下:

  

实例成员 保证是线程安全的。

我的猜测是log4net不是线程安全的。我使用此类登录数据库,并不时手动刷新附加数据。我看到有些记录是重复的。

查看代码,在我看来,基类BufferingAppenderSkeleton锁定了flush()的对象,但最终调用的函数SendFromBuffer()可以从其他地方调用没有锁(例如Append())。因此,该类似乎不是线程安全的。

那么我应该断定该类不是线程安全的,但是log4net中的用法是这样的吗?

0 个答案:

没有答案