log4net打开数据库连接

问题描述:

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

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

这听起来对我来说,连接池不起作用,或者有没有我没有在代码中发布的资源。我应该如何解决这个问题?

SQL Server Profiler会告诉你所有这些。创建一个控制台应用程序,记录几条语句,并确认连接正在打开和关闭。作为一个说明,我建议不要将你的缓冲区大小设置为1.对于一个相当大的应用程序(让我们看看NHibernate),它可以轻松记录100个或更多的语句,用于单个操作(取决于日志水平)。这相当于每个请求100个独立的数据库连接,并且可以轻松地使服务器瘫痪。

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