nHibernate在单元测试期间输出sql日志记录

Jos*_*osh 3 nhibernate logging unit-testing

我正在针对nHibernate应用程序在VS2008内部运行单元测试,并且希望在单元测试期间打开日志记录,这样我就可以看到更多的内容.我已经复制并粘贴了另一个应用程序的app.config,它成功地将nhibernate信息记录到单元测试app.config中,但仍然没有得到任何输出.

这是测试项目的app.config:

<log4net>
    <appender name="NHibernateFileLog" type="log4net.Appender.RollingFileAppender">
      <file value="Logs/nhibernate.txt" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="100KB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n"  />
      </layout>
    </appender>

    <appender name="GeneralLog" type="log4net.Appender.RollingFileAppender">
      <file value="Logs/general.txt" />
      <appendToFile value="true" />
      <maximumFileSize value="100KB" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="5" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n"  />
      </layout>
    </appender>
    <appender name="DataLog" type="log4net.Appender.RollingFileAppender">
      <file value="Logs/data.txt" />
      <appendToFile value="true" />
      <maximumFileSize value="100KB" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="5" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n"  />
      </layout>
    </appender>

    <!-- levels: DEBUG, INFO, WARN, ERROR, FATAL -->

    <root>
      <level value="DEBUG"/>
      <appender-ref ref="GeneralLog" />
    </root>

    <logger name="NHibernate" additivity="false">
      <level value="DEBUG"/>
      <appender-ref ref="NHibernateFileLog"/>
    </logger>
    <logger name="Pushable.Data" additivity="false">
      <level value="DEBUG"/>
      <appender-ref ref="DataLog"/>
    </logger>
</log4net>
Run Code Online (Sandbox Code Playgroud)

当我运行测试项目时,没有从log4net创建任何输出.运行log4net的应用程序必须是Web或Windows而不是测试应用程序吗?

Jos*_*osh 5

在Test初始化程序中,需要有一个调用:

log4net.Config.XmlConfigurator.Configure();
Run Code Online (Sandbox Code Playgroud)

这将使日志记录正常.