Log4net未为NHibernate创建日志文件

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

这是我第一个使用NHibernate的严肃项目,我已经设置了log4net来输出NHibernate生成的sql,但是在运行我的web应用程序之后,我找不到任何日志文件

此web应用程序当前正在我的本地计算机上运行。dispatch目录是IIS中的虚拟目录,指向My Documents/Visual Studio 2008/Projects中的项目文件夹

下面是Web.config的相关部分

<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>