2011-02-13 5 views
0

を注入、私は誰かが私は比較的単純なシナリオにいくつかの概念を適用することができます期待しています:私のアプリケーションが実行されている場合DIツールでクロールすることを学ぶ一方でMEFとのILogとGuyWire

* Log4NetLogger : ILogger 
* DebugLogger : ILogger 
* NullLogger : ILogger (no output: saves time & noise) 

、私が欲しいですLog4NetLoggerになるILog、そしてユニットテスト時にDebugLoggerまたはNullLoggerのいずれかにしたいと思っています。

私は、GuyWireの実装that I likeを探しています。これはWindsorInstallersを使用しています。他のDIツールに偏っていないし、インストーラのコンセプトを理解していなければ、Windsorは他のコンテナと同じくらい良いと思われます。

そうすれば、Log4NetとTestLoggingInstallerを別の方法で結ぶProductionLoggingInstallerを使用できますか? DebugLoggerまたはNullLoggerのいずれかにテストを切り替えるのはどうですか?

そしてMEFがあります。この時点で、この「問題」も解決できると思っていますが、コンテナがなくても、コンテナにも含まれていないかどうかはわかりません。

ここで、ログの解決のシナリオを解決するために、GuyWire、Windsor、およびMEFの組み合わせをどのように適用しますか?

乾杯、
Berryl

注:特定のロギングツールのapp.configをとは対照的に、私は具体的には、いくつかの依存性の注入ツール(ETCすなわち、MEF、ウィンザー、GuyWireを)適用するには、このログシナリオを使用しています

答えて

0

テフ構成部分を変更することで、さまざまな動作をプロダクションとテストから解決できます。どのようなベースのロガーでも、アペンダー(ナルアペンダーでも可)の包括的なスイートを提供し、エンジン自体の構成方法ではなく、エンジンを選択する責任をIoCに任せます。

+0

私は本当に2つのものを混ぜていました.1つはユニットテスト成果物の出力を目で確認する機能で、もう1つは実際にプロダクションコードのロギングです。私はTesting Supportプロジェクトでいくつかの拡張機能を実装するだけで、最初の問題を解決しました。もうひとつは、Wind4のLoggingFacilityとlog4netを介した単純化されたインターフェースの組み合わせに傾いています。これはいくつかのアペンダーを含んでいるので、答えが得られます! – Berryl

0

Common Log(http://netcommon.sourceforge.net/docs/1.2.0/reference/html/logging.html)を見てください。これにより、1つのインターフェイスにコード化して、設定ファイル経由でロガーを変更することができます。

関連する問題