我有一些代码将使用Enterprise Library 5.0中的日志应用程序块从不同的线程进行日志记录。 LAB线程安全吗?我可以从不同的线程中正常记录,还是需要同步日志记录代码,以便一次只能从一个线程使用?
答案 0 :(得分:8)
Enterprise Library 5.0日志记录是线程安全的。
在记录之前,EL会检查IsThreadSafe
的{{1}}属性。如果特定的TraceListener不是线程安全的,那么在调用侦听器的TraceListener
方法之前它将执行Monitor.Enter(listener);
。
答案 1 :(得分:0)
据我所知,Enterprise Library 3.1 Logging不是线程安全的。 在LogWriter中没有锁定GetAvailableTraceListeners(IList traceListeners)调用 class,在Logger类中使用static。