Я не думаю, что Visual Studio покажет вывод консоли для библиотеки классов или проекта веб-сайта.Я настраиваю log4net для записи SQL-кода NHibernate в текстовый файл, а затем открываю файл в Visual Studio.При правильной конфигурации VS покажет обновления файла, щелкнув в окне.
В вашем файле Web.config (или app.config) определите раздел log4net, красиво отформатируйте SQL в NHibernate, создайтедобавьте текстовый файл и отправьте туда сообщения NHibernate:
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="format_sql">true</property>
</session-factory>
</hibernate-configuration>
<log4net>
<appender name="NHibernateLogFile" type="log4net.Appender.FileAppender">
<file value="../Logs/NHibernate.log" />
<appendToFile value="false" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{HH:mm:ss.fff}%m%n==========%n" />
</layout>
</appender>
<logger name="NHibernate" additivity="false">
<level value="WARN" />
<appender-ref ref="NHibernateLogFile" />
</logger>
<logger name="NHibernate.SQL" additivity="false">
<level value="DEBUG" />
<appender-ref ref="NHibernateLogFile" />
</logger>
</log4net>
</configuration>
Затем откройте NHibernate.Log в Visual Studio.Из-за описанного выше MinimalLock Visual Studio может читать файл одновременно с записью в него log4net.Когда вы нажмете в окне, VS перезагрузит файл.Обязательно отключите его при развертывании веб-сайта или приложения.