2009-09-23 9 views
48

をロギング私は app.configファイルを持っているが、私はまだ私はERRORログレベルでlog4netの設定を追加しようとしたNHibernateのデバッグログ無効に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 ... 

を得るが、役に立ちません。どのようにこれらのログメッセージを停止できますか?

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

+0

として、実際のasnwerはlog4net –

+1

の設定です。実際には、nHibernateのshowsqlです。 – Dani

答えて

80

Configure Log4Net for use with NHibernateが役に立ちます。

あなたはこれらのロガーの両方を持っている必要があります:

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

<logger name="NHibernate.SQL"> 
    <level value="ERROR" /> 
</logger> 
+1

動作しません。更新された質問を参照してください(適切なlog4net設定セクションを追加しても効果はありません)。 – ripper234

+3

log4netは実際には指定された名前で始まるロガー名と一致するので、 "NHibernate"を置くと、すべてのNHibernateメッセージが除外されます。 –

+0

@リッパーのコメントが間違っていると思います。これは私にとっても、またActiveRecordでも役に立ちます –

1

あなたはNHibernateのレベルまたはlog4netのレベルでログを無効にしますか?

私は前者を "show_sql"変数をfalseに設定しています。私はこれをプログラムでC#でやっていますが、これはXML設定ファイルにも簡単に入れることができると思います。

+0

(http://www.beansoftware.com/asp.net-tutorials/nhibernate-log4net.aspx)は動作しません。デフォルトでSQLを表示するのはなぜですか? 私のコードでどうにかしてこれを実用的に変えることができますか? – ripper234

+0

私のコードをチェックしてみました。私はshow_sql = trueをコメントアウトすることでそれを無効にしました。気にしないで。ごめんなさい。 –

+0

ありがとうございました。 – Jonathan

0

NUnit 2.4.6を使用していますか?私はthis昨日、NUnitのこのバージョンがDEBUGレベルのロギングを使用するようにlog4netを設定し、NHibernateを有効にしていると言うブログ記事を読んでいます。

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

EDIT

、私は出力がlog4netのとは何かを持っているとは思いません。フォーマットは "show_sql"制御出力のようになります。私は2つのことをチェックします: 1.正しい(show_sql = falseのもの)hibernate.configが実行ディレクトリにコピーされている場合。 2. show_sql構成プロパティーがコード内で手動でオーバーライドされていない場合。

6

"my code"のどこかに問題がありました。 NHibernate設定を手動で構築します(show_sqlフラグをtrueに設定します)。削除.ShowSql()

12
return Fluently.Configure() 
      .Database(MsSqlConfiguration.MsSql2005.ConnectionString(
       c => c.FromConnectionStringWithKey("MyDB")).ShowSql()) 

は、NUnitの問題だった私にとって、私

+0

これは私の問題を解決しました、ありがとう! –

+0

しかし、コンソールではなくSQLは見たいのですが? –

2

ザ・NHibernateのログがずっと私を助けていないのNUnitの異なるバージョンを使用されている必要がありますチームシティーでのテストを実行する際に、余分なログが起こっていた...私は、これらの設定の方が好き:

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

    <logger name="NHibernate.SQL"> 
     <level value="OFF" /> 
    </logger> 
関連する問題