Log4net未为NHibernate创建日志文件
这是我第一个使用NHibernate的严肃项目,我已经设置了log4net来输出NHibernate生成的sql,但是在运行我的web应用程序之后,我找不到任何日志文件 此web应用程序当前正在我的本地计算机上运行。dispatch目录是IIS中的虚拟目录,指向My Documents/Visual Studio 2008/Projects中的项目文件夹 下面是Web.config的相关部分Log4net未为NHibernate创建日志文件,nhibernate,log4net,Nhibernate,Log4net,这是我第一个使用NHibernate的严肃项目,我已经设置了log4net来输出NHibernate生成的sql,但是在运行我的web应用程序之后,我找不到任何日志文件 此web应用程序当前正在我的本地计算机上运行。dispatch目录是IIS中的虚拟目录,指向My Documents/Visual Studio 2008/Projects中的项目文件夹 下面是Web.config的相关部分 <hibernate-configuration xmlns="urn:nhibernate-co
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">
NHibernate.Connection.DriverConnectionProvider
</property>
<property name="dialect">
NHibernate.Dialect.MsSql2008Dialect
</property>
<property name="connection.driver_class">
NHibernate.Driver.SqlClientDriver
</property>
<property name="connection.connection_string">
my connection string
</property>
<property name="proxyfactory.factory_class">
NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle
</property>
<property name="show_sql">true</property>
</session-factory>
</hibernate-configuration>
<log4net>
<appender name="NHibernateFileLog" type="log4net.Appender.FileAppender">
<file value="logs/nhibernate.txt" />
<appendToFile value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n" />
</layout>
</appender>
<logger name="NHibernate.SQL" additivity="false">
<level value="INFO"/>
<appender-ref ref="NHibernateFileLog"/>
</logger>
</log4net>
请让我知道我做错了什么。我需要查看此输出以调试效率低下的SQL查询。谢谢。您可能需要在web.config中配置NHibernate.SQL部分,以便将其设置为调试级别(而不是信息)。您还缺少NHibernate.Loader.Loader部分
<logger name="NHibernate.SQL" additivity="false">
<level value="DEBUG" />
<appender-ref ref="ConsoleAppender" />
</logger>
<!--
NHibernate.Loader.Loader logs diagnostic stuff and SELECTs.
You can use either logger, or both, depending on you needs.
-->
<logger name="NHibernate.Loader.Loader" additivity="false">
<level value="INFO" />
<appender-ref ref="ConsoleAppender" />
</logger>
是一篇非常有助于为NHibernate启用SQL日志记录的文章
<logger name="NHibernate.SQL" additivity="false">
<level value="DEBUG" />
<appender-ref ref="ConsoleAppender" />
</logger>
<!--
NHibernate.Loader.Loader logs diagnostic stuff and SELECTs.
You can use either logger, or both, depending on you needs.
-->
<logger name="NHibernate.Loader.Loader" additivity="false">
<level value="INFO" />
<appender-ref ref="ConsoleAppender" />
</logger>