Я пытаюсь заставить Castle ActiveRecord показать мне SQL, который он генерирует. Различные блоги, которые я нашел по этому поводу, дают две альтернативы:
(1) Использовать настройку NHibernate "show_sql" . Беда в том, что я использую программную настройку, вот так.
var config = XmlConfigurationSource.Build(
DatabaseType.MsSqlServer2008, Settings.Default.StationManagerDbConnectionString);
config.IsRunningInWebApp = isRunningInWebApp;
config.PluralizeTableNames = true;
var modelAssembly = Assembly.GetAssembly(typeof(OneOfMyClasses));
ActiveRecordStarter.Initialize(modelAssembly, config);
В программной конфигурации, похоже, нет способа указать "show_sql".
(2) Использовать log4net . Но, оставив в стороне то, что боль в log4net - работать, я не нашел способа получить просто SQL. Я получаю кучу и кучу отладочных данных, из которых операторы SQL являются лишь небольшой частью.
Итак: есть ли способ сохранить мою программную конфигурацию Castle ActiveRecord, но также заставить NHibernate выводить только SQL?
РЕДАКТИРОВАТЬ: Вот что я получил для работы с log4net. Но на первых двух страницах моего веб-приложения в окне «Отладка» выпадает более 14 000 строк. Как мне изменить этот код, чтобы получить только SQL?
var appender = new log4net.Appender.DebugAppender
{
Layout = new log4net.Layout.SimpleLayout(),
Name = "NHibernate.SQL",
Threshold = log4net.Core.Level.Debug
};
log4net.Config.BasicConfigurator.Configure(appender);