FluentNHibernateを使用するコンソールアプリがあります。log4netを使用してさまざまな場所にログを記録するように構成しました。そしてそれは素晴らしい働きをします。見たいSQLを確認でき、ログ出力をさまざまなアペンダーに送信できます。問題は、コンソールに送られるlog4netsql出力を抑制できないことです。
追加のコンソール出力は、log4net構成設定によって制御されていません。すべてのアペンダーをオフにしても、常に表示されます。
助言がありますか?
FluentNHibernateを使用するコンソールアプリがあります。log4netを使用してさまざまな場所にログを記録するように構成しました。そしてそれは素晴らしい働きをします。見たいSQLを確認でき、ログ出力をさまざまなアペンダーに送信できます。問題は、コンソールに送られるlog4netsql出力を抑制できないことです。
追加のコンソール出力は、log4net構成設定によって制御されていません。すべてのアペンダーをオフにしても、常に表示されます。
助言がありますか?
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経由で行っていることのみを制御できます。
NHibernate のログはあまり役に立ちません。必要なときに有効にします...これらの設定を app.config の log4net セクションに追加します。
<logger name="NHibernate">
<level value="OFF" />
</logger>
<logger name="NHibernate.SQL">
<level value="OFF" />
</logger>