2

FluentNHibernateを使用するコンソールアプリがあります。log4netを使用してさまざまな場所にログを記録するように構成しました。そしてそれは素晴らしい働きをします。見たいSQLを確認でき、ログ出力をさまざまなアペンダーに送信できます。問題は、コンソールに送られるlog4netsql出力を抑制できないことです。

追加のコンソール出力は、log4net構成設定によって制御されていません。すべてのアペンダーをオフにしても、常に表示されます。

助言がありますか?

4

3 に答える 3

1

app.config の nhibernate セクションで、このプロパティをtrueに設定していますか?

<property name="show_sql">true</property>

その場合は false に設定します。

編集

nhibernate ソースからのサンプル コードは次のとおりです。

log.Debug(logMessage);
if (LogToStdout)
{
    Console.Out.WriteLine("NHibernate: " + statement);
}

上記のコードでは、構成プロパティLogToStdoutに直接リンクされています。show_sqlこれを true に設定すると、コンソールへの書き込みが停止されることはありません。あなたのコメントに関しては、log4net 経由でこれを制御することはできません。log.Debug(logMessage)log4net経由で行っていることのみを制御できます。

于 2012-10-25T12:46:17.820 に答える
0

NHibernate のログはあまり役に立ちません。必要なときに有効にします...これらの設定を app.config の log4net セクションに追加します。

    <logger name="NHibernate">
      <level value="OFF" />
    </logger>

    <logger name="NHibernate.SQL">
      <level value="OFF" />
    </logger>
于 2014-05-21T17:37:40.380 に答える