我有一个使用Enterprise Library v4.0
的BIG客户端服务应用程序每次与DB建立新连接时,它都会使用Enterprise Library记录器。 当我关闭记录器(通过在web.config和app.config中使用注释或我的开/关布尔)批处理操作(例如,请求100条记录)时,大约需要6-7秒。当我打开记录器时,大约需要20秒。
我的问题是企业库如何操作记录器,是否通过使用线程?我怎么能告诉你?
我问这个问题是因为我想使用线程调用记录器,但如果库已经使用了线程,那么它就不会成功。另外,是否使用优先于此操作的线程?你认为我需要使用其他记录器,例如Log4Net等吗?
答案 0 :(得分:1)
企业库日志记录应用程序块是线程安全的。 如果您想了解Logger的运作方式,请查看source code。
答案 1 :(得分:1)
企业库记录器同步处理请求,因此它不会产生线程来处理写请求。
如果要查看正在创建的线程,则可以在调试时监视Visual Studio中的线程。
您的应用程序总是可以启动一个线程来记录信息,但我会保持警惕,确定是否可能启动大量短期线程实际上有助于提高性能。
我建议进行性能分析以确定一直在进行的操作。