2011-04-19 48 views
1

我目前在一個ASP.Net應用程序中使用NHibernate 3.1,並得到它工作得很好(與流利)。我設法讓它記錄所有生成的SQL查詢到我的輸出選項卡中,同時通過使用的Application_Start下面的代碼片斷調試:NHibernate 3.1無法登錄SQL更新或刪除語句

private static DebugTextWriter _writer;

protected virtual void Application_Start(object sender, EventArgs e) { _writer = new DebugTextWriter(); Console.SetOut(_writer);
}

我最近從2.1到3.1,現在我的更新升級的NHibernate並刪除語句不再輸出到日誌...

你們有什麼想法,爲什麼?

感謝

+0

你有一個log4net的參考,因爲我相信它不是在NH 3+的要求或在你的cfg代碼中有'.ShowSql()' – Rippo 2011-04-19 15:24:15

+0

嗨,我沒有參考log4net,我正在使用我的hibernate.cfg.xml文件中的show_sql屬性。 – BredStik 2011-04-19 17:05:33

回答

1

我終於發現是什麼造成了這種行爲。事實證明,hibernate.cfg.xml文件中的adonet.batch_size條目導致了這個問題。刪除此屬性元素後,更新和刪除語句最終按預期輸出。

感謝您的回答和評論。

0

爲了使用log4net的記錄,你並不需要定義show_sql,你只需要配置一個名爲NHibernate和NHibernate.SQL記錄儀。確保你不限制級別 - 是否只是從INFO級別以上進行登錄,而你錯過的消息級別是DEBUG?

這裏是一個簡短的教程:http://nhforge.org/wikis/howtonh/configure-log4net-for-use-with-nhibernate.aspx

+0

感謝您的提示。不幸的是,這並沒有解決我的問題。 – BredStik 2011-04-19 23:32:17