我正在使用AdoNetAppender写入SQL Server 2005数据库表。我将bufferSize设置为1,以便立即写入条目。
我的DBA担心log4net会打开其数据库连接。我们今天有大约50个数据库连接,但只有22个日志条目。在某些情况下,来自同一客户端的多个连接具有不同的登录时间。
对我来说,连接池不起作用或者我没有在代码中释放资源。我应该如何解决这个问题?
答案 0 :(得分:1)
SQL Server Profiler将向您展示所有这些。创建一个控制台应用程序,记录一些语句,并验证连接是否正在打开和关闭。
作为旁注,我建议不要将缓冲区大小设置为1.对于大尺寸的应用程序(让我们看看NHibernate),它可以轻松地为单个操作记录100个或更多语句(取决于日志级别) )。这相当于每个请求100个单独的数据库连接,并且可以轻松地使服务器瘫痪。
缓冲区大小为5或10会产生奇迹。当然,您有丢失一些日志消息的风险,但在大多数情况下,它们最终会被刷新(节省电力损失或硬件故障)。