0

我有一个使用 Enterprise Library v4.0 的 BIG 客户端服务应用程序

每次与数据库建立新连接时,它都会使用企业库记录器。当我关闭记录器(通过在 web.config 和 app.config 中使用注释或我的开/关布尔值)批处理操作(例如请求 100 条记录)时,大约需要 6-7 秒。当我打开记录器时,大约需要 20 秒。

我的问题是企业库究竟是如何操作记录器的,是否使用线程?我怎么能说清楚?

我问这个问题是因为我想使用线程调用记录器,但如果库已经使用线程,它将不会成功。此外,对于此操作是否更适合使用线程?您认为我需要使用其他记录器,例如 Log4Net 等吗?

4

2 回答 2

1

Enterprise Library Logging Application Block 是线程安全的。如果您想了解 Logger 的运行方式,请查看源代码

于 2012-08-08T17:06:19.563 回答
1

Enterprise Library Logger 同步处理请求,因此它不会产生线程来处理写入请求。

如果要查看正在创建哪些线程,则可以在调试时在 Visual Studio 中监视线程。

您的应用程序总是可以启动一个线程来记录信息,但我会谨慎地确定是否启动大量的短期线程实际上有助于提高性能。

我建议进行分析以确定一直占用的时间。

于 2012-08-10T04:23:56.597 回答