2016-11-11 10 views
0

モデル、DataAccess、ビジネスおよびビューレイヤーを持つMVCプロジェクトがあります。 NLogを使用して例外をテキストファイルに記録する予定です。どの層にエラーを記録すべきかわかりません。それは私の最初の質問です。私はビュー層でエラーを記録することをお勧めするブログをいくつか読んだ。私はそれについては分かりません。多くのレイヤーを持つMVCのログをどのレイヤーにすればいいですか

+0

あなたが探しているのは、トラップとログ例外ですが、elmahを使用してください。 https://www.nuget.org/packages/elmah/ – Fran

+0

私はこれに一つの確かな答えがあるとは思わない。取得しようとしているのは意見だけです。 – Amy

答えて

1

私はMVCを使用することをお勧めします。よくある唯一の例外は、トップレベルのMVCです。

MVC以外のものに対して+ global.asaxジェネリックエラーハンドラが必要な動作を取得するために、利用/オーバーライドする必要があるMVC用の特別なエラーハンドラがあります。それはあなたがそれを複製しなければならない他の場所でそれをするのと比較して、どんな層で起こっている例外もカバーするでしょう。

コメントで既に述べたように、Elmahも使用できます。私が記述したことはかなりうまくいくでしょうが、自動的にElmah.Mvcパッケージを追加してファイルに記録するように設定します。誰もがあなたのログを見ることができるように、elmahエンドポイントを公開しないように注意する必要があります。

+1

私はそれにすべて同意します。私はまた、try/catchブロックの束をあなたのコードに散らばりたくないということを、例外を捕捉するための様々なレイヤーだけに追加したいと付け加えたいと思います。また、これはこのものをあなた自身で書くものではありません。そこにelmah、Exception Manangement Blockを持つエンタープライズライブラリから十分なパッケージがあります。コードでビジネス価値を創造することに重点を置いてください。 – Fran

+1

あなたはトップレベルを1つ持っていればどこでも試着する必要はないと思っていますが、あなたが正しいと思う人には非常に多くのトラブルがあります。すべての場所。 –

関連する問題