为什么nhibernate需要Log4Net?

为什么nhibernate需要Log4Net?,nhibernate,log4net,elmah,Nhibernate,Log4net,Elmah,我将使用asp.NETMVC3和NHibernate3.2构建我的应用程序。我决定使用Elmah来记录所有的错误消息 我记得nhibernate支持log4net,并使用它记录所有查询。如果我不关心将查询输出到日志文件,我可以使用nhibernate profiler来完成,还有什么其他原因会阻止我从log4net切换到Elmah?好吧,无论您是否积极使用nhibernate的日志功能,nhibernate库的代码都依赖于log4net,因此,为了加载NHibernate DLL,您需要将log

我将使用asp.NETMVC3和NHibernate3.2构建我的应用程序。我决定使用Elmah来记录所有的错误消息


我记得nhibernate支持log4net,并使用它记录所有查询。如果我不关心将查询输出到日志文件,我可以使用nhibernate profiler来完成,还有什么其他原因会阻止我从log4net切换到Elmah?

好吧,无论您是否积极使用nhibernate的日志功能,nhibernate库的代码都依赖于log4net,因此,为了加载NHibernate DLL,您需要将log4net DLL提供给NHibernate。您只能通过下载NHibernate源代码并对其进行修改以删除对log4net的使用(或者完全剥离日志功能,或者用Elmah替换它)来解决这个问题


这就是为什么一般来说,你必须小心使用什么库来开发你自己的代码,因为你使用的越多,你的应用程序需要的就越多,即使用户从未真正让你的应用程序执行一行引用的代码。

在NHibernate 3+中,对log4net的紧密依赖被打破。您可以轻松地将其与nlog一起用于

非常感谢你。我想我会把log4netdll留在那里,只是不做任何事情。顺便说一下,我从web.config文件中删除了所有log4net设置。可以吗?我想说是的,因为log4net应该足够健壮,如果它没有配置的话,应该知道应该做什么而不会出错,但是我会对整个系统进行彻底的测试以确保。这个答案是不正确的;NHibernate已经删除了log4net上的硬依赖项。斯莱的答案是正确的。