2012-03-29 1 views
1

asp.net mvc3とnhibernate 3.2を使用してアプリケーションをビルドします。私はElmahを使用してすべてのエラーメッセージを記録することにしました。なぜLog4Netがnhibernateに必要ですか?

私はnhibernateがlog4netをサポートしていることを覚えており、すべてのクエリをログに記録しています。ログファイルにクエリを出力することに気を配らなければ、nhibernateプロファイラを使用してlog4netからElmahにswtichingする他の理由は何ですか?

答えて

1

NHibernateのロギング能力を積極的に使っているかどうかに関わらず、NHibernateライブラリのコードはlog4netに依存しているので、NHibernate DLLをロードするためには、log4net DLLをNHibernateで利用できるようにする必要があります。これを回避するには、NHibernateのソースをダウンロードし、log4netの使用を削除するように変更します(ロギング機能を完全に削除するか、Elmahで置き換えるか)。

これは、ユーザーが実際にあなたのアプリを実行させることが決してない場合でも、より多くのアプリを必要とするため、あなた自身のコードを開発するためにどのライブラリを使用するか注意する必要があります。参照されるコードの1行。

+0

ありがとうございました。私はそこにlog4netのdllを残して、ちょうどそれで何もしないだろうと思う。ところで、私はweb.configファイルからすべてのlog4net設定を削除しました。大丈夫ですか? – qinking126

+0

log4netは設定がなければエラーなしで何をすべきかを知るには頑強でなければならないので、はいと言いたいのですが、システム全体を徹底的にテストして確認します。 – KeithS

+0

この回答は正しくありません。 NHibernateはlog4netのハード依存関係を削除しました。 Slyの答えが正しい。 –

4

NHibernateでは、log4netに対する厳密な依存関係が壊れています。あなたはexampleのnlogで簡単に使用できます。

関連する問題