web-dev-qa-db-ja.com

NHibernateロギングを無効にする

empty 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 ...

ERRORログレベルのlog4net構成を追加しようとしましたが、使用しませんでした。これらのログメッセージを停止するにはどうすればよいですか?

私が困惑しているのは、一緒にあるapp.configが空の場合、なぜこれらが最初に表示されるのかということです。これらのメッセージを印刷しないように設定する必要があることは、私には意味がありません-デフォルトはオフにする必要があります。私のコードがそれらをプログラムで何らかの方法で設定しているのでしょうか?何を探すべきですか?

51
ripper234

NHibernateで使用するようにLog4Netを構成する が役立つ場合があります。

これらのロガーの両方が必要です。

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

 <logger name="NHibernate.SQL">
   <level value="ERROR" />
 </logger>
84
kgiannakakis
_return Fluently.Configure()
            .Database(MsSqlConfiguration.MsSql2005.ConnectionString(
                c => c.FromConnectionStringWithKey("MyDB")).ShowSql())
_

.ShowSql()を削除するとうまくいきました

14

問題は「私のコード」のどこかにありました。 NHibernate構成を手動で構築します(show_sqlフラグをtrueに設定)。

6
ripper234

NHibernateログはあまり役に立ちません...これらの設定の方が好きです:

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

    <logger name="NHibernate.SQL">
      <level value="OFF" />
    </logger>
3
Jacob Brewer

私にとっては、NUnitの問題でした。異なるバージョンのnunitを使用しているはずのTeamCityでテストを実行すると、追加のロギングが発生していました

2
user1891762

NHibernateレベルまたはLog4Netレベルでログを無効にしますか?

前者は「show_sql」変数をfalseに設定して実行しています。私は現在、これをC#でプログラム的に実行していますが、XML構成ファイルにも簡単に配置できると思います。

1
Jon Seigel

NUnit 2.4.6を使用していますか?私は昨日 this のブログ投稿を読みました。このバージョンのNUnitは、DEBUGレベルのロギングを使用するようにlog4netを設定し、NHibernateにも影響を与えると述べています。

nUnitではなく、あなたでもない場合は、使用している他のサードパーティライブラリかどうかを確認します。

[〜#〜]編集[〜#〜]

考え直してみると、出力がlog4netと関係があるとは思いません。この形式は、「show_sql」で制御された出力に似ています。次の2つを確認します。1.正しい場合(show_sql = falseの場合)hibernate.configが実行ディレクトリにコピーされます。 2. show_sql構成プロパティがコードで手動でオーバーライドされていない場合。

0
Moshe Levi