Свободный NHibernate и log4net - PullRequest
       26

Свободный NHibernate и log4net

1 голос
/ 01 февраля 2012

Хотя на эту тему есть много вопросов и ответов, я не смог найти ответ на свою проблему.Я настроил log4net для NHibernate, как описано здесь: http://nhibernate.hibernatingrhinos.com/19/how-to-configure-log4net-for-use-with-nhibernate

Единственное отличие заключается в том, что я настроил log4net для использования с приложением трассировки:

<appender name="trace" type="log4net.Appender.TraceAppender, log4net">
    <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%d %p %m%n" />
    </layout>
</appender>
....
    <logger name="NHibernate" additivity="false">
        <level value="ALL"/>
        <appender-ref ref="trace"/>
    </logger>
    <logger name="NHibernate.SQL" additivity="false">
        <level value="ALL"/>
        <appender-ref ref="trace"/>
    </logger>

И до этого я получаю свой NHibernateпротоколирование.Однако я не вижу ни одного из сгенерированных запросов SQL, что я и надеялся увидеть.Я получаю записи об открытии и закрытии сессий, совершении транзакций и т. Д. Но в запросах, отправляемых в базу данных, ничего нет.Кто-нибудь знает, что я пропускаю?

Я использую Fluent NHibernate 1.2, который использует NHibernate 3.1.Я включил ShowSql() в конфигурации.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2012

Попробуйте удалить additivity="false" из обоих приложений.Либо так, либо используйте другой appender для NHibernate.SQL.Установка их обоих в false не имеет смысла в этом случае.

Если вы хотите отделить запросы sql от обычного ведения журнала nhibernate, тогда имеет смысл ЕСЛИ вы используете разные приложения.

http://logging.apache.org/log4net/release/sdk/log4net.Repository.Hierarchy.Logger.Additivity.html

0 голосов
/ 01 февраля 2012

Попробуйте установить ноль AdoNetBatchSize в вашей конфигурации беглого NH:

Fluently
  .Configure()
  .Database(...) 
  .AdoNetBatchSize(0) 
...