我有一个使用EnterpriseLibraryV4.0的大型客户端服务应用程序
每次有新的数据库连接时,它都会使用企业程序库记录器。当我关闭记录器(通过在web.config和app.config中使用注释或on/off布尔值)批处理操作(例如请求100条记录)时,大约需要6-7秒。当我打开记录器时,大约需要20秒。
我的问题是,Enterprise Library到底是如何操作记录器的,是使用线程还是不使用线程?我怎么才能说得清呢?
我之所以问这个问题,是因为我想使用线程来调用记录器,但是如果库已经使用了线程,那么它就不会成功。另外,使用线程来执行此操作是否更可取?你觉得我需要用其他的记录器吗,比如Log4Net之类的?
发布于 2012-08-10 12:23:57
Enterprise Library Logger同步处理请求,因此不会派生线程来处理写入请求。
如果您希望查看正在创建哪些线程,则可以在调试时在Visual Studio中监视这些线程。
您的应用程序总是可以启动一个线程来记录这些信息,但是我需要注意的是,在确定启动大量可能的短期线程是否真的有助于提高性能。
我建议通过分析来确定所有时间都在执行什么操作。
发布于 2012-08-09 01:06:20
企业库日志应用程序块是线程安全的。如果您想了解记录器是如何运行的,请查看source code。
https://stackoverflow.com/questions/11733182
复制相似问题