Отключить ведение журнала NHibernate
У меня есть файл пустой app.config, но я все равно получаю журналы отладки NHibernate
NHibernate: SELECT this_.LogID as LogID71_0_, this_.Level as Level71_0_, this_.Message as Message71_0_, this_.EventTime as EventTime71_0_, this_.Component as ...
Я попытался добавить конфигурацию log4net с уровнем журнала ERROR, но не использовать. Как я могу остановить эти сообщения журнала?
То, что я озадачиваю, - это то, почему они появляются в первую очередь, если у меня есть пустой app.config. Для меня не имеет смысла, что я должен настроить его, чтобы не печатать эти сообщения - по умолчанию должно быть отключено. Может быть, мой код так или иначе устанавливает их? Что я должен искать?
Ответы
Ответ 1
Может быть полезно настроить Log4Net для использования с NHibernate.
Вам нужно иметь оба этих регистратора:
<logger name="NHibernate">
<level value="ERROR" />
</logger>
<logger name="NHibernate.SQL">
<level value="ERROR" />
</logger>
Ответ 2
return Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2005.ConnectionString(
c => c.FromConnectionStringWithKey("MyDB")).ShowSql())
Удаление .ShowSql()
работало для меня
Ответ 3
Проблема была где-то в "моем коде". Мы создаем конфигурацию NHibernate вручную (установив флаг show_sql в значение true).
Ответ 4
Для меня это была проблема NUnit. Дополнительный журнал происходил при запуске тестов в TeamCity, которые, должно быть, использовали другую версию nunit
Ответ 5
Журналы NHibernate не помогают мне... Мне нравятся эти настройки лучше:
<logger name="NHibernate">
<level value="OFF" />
</logger>
<logger name="NHibernate.SQL">
<level value="OFF" />
</logger>
Ответ 6
Вы хотите отключить ведение журнала на уровне NHibernate или уровне Log4Net?
Я делаю первое, устанавливая переменную "show_sql" в false. Я делаю это программно в С# прямо сейчас, но я предполагаю, что это также будет легко добавить в файл конфигурации XML.
Ответ 7
Используете ли вы NUnit 2.4.6? Я читаю этот вчерашний пост в блоге, в котором говорится, что эта версия NUnit устанавливает log4net для использования регистрации уровня DEBUG, а также для NHibernate.
Если это не NUnit, и это не вы, я бы проверить, если вы используете какую-то другую стороннюю библиотеку.
ИЗМЕНИТЬ
С другой стороны, я не думаю, что выход имеет какое-то отношение к log4net. формат больше похож на управляемый вывод "show_sql". Я бы проверял две вещи:
1. Если в ваш каталог выполнения скопирован правильный (тот, у которого есть show_sql = false) hibernate.config.
2. Если свойство конфигурации show_sql не переопределено вручную в вашем коде.