0

我正在使用 AdoNetAppender 写入 SQL Server 2005 数据库表。我将 bufferSize 设置为 1,以便立即写入条目。

我的 DBA 担心 log4net 保持其数据库连接处于打开状态。我们今天有大约 50 个与数据库的连接,但只有 22 个日志条目。在某些情况下,来自同一个客户端的多个连接具有不同的登录时间。

在我看来,连接池不起作用,或者我没有在代码中释放资源。我应该如何解决这个问题?

4

1 回答 1

1

SQL Server Profiler 将向您展示所有这些。创建一个控制台应用程序,记录一些语句,并验证连接是否打开和关闭。

作为旁注,我建议不要将缓冲区大小设置为 1。对于一个很大的应用程序(让我们看看 NHibernate),它可以轻松地为单个操作记录 100 条或更多语句(取决于日志级别)。这相当于每个请求有 100 个单独的数据库连接,并且很容易使服务器瘫痪。

5 或 10 的缓冲区大小会产生奇迹。当然,您有丢失一些日志消息的风险,但在大多数情况下,它们最终会被刷新(避免断电或硬件故障)。

于 2008-10-27T18:05:56.373 回答