2012-03-02 24 views
5

Castle Windsorの内部ログを記録するにはどうすればよいですか?たとえば、接続文字列のロードに失敗した場合にCastleを誤って構成した場合、接続文字列を解決しようとすると、城からエラーをログに記録できるかどうかを知りたいとします。私はLog4Net Facilityを使用しています。私はWindsorのログではなく、アプリケーションのログしか見ることができません。Castle Windsorの内部ログ

答えて

4

解決が失敗した場合、WindsorContainer.Resolve <>を呼び出すと例外がスローされます。この例外は、コンテナを作成し、必要なコンポーネントを解決する "ブートストラップ"コードに記録する必要があります。例外メッセージは、通常、悲惨な細部に何が間違っているかを正確に示します。

私の知るところでは、Windsorはlog4netを介した「内部」ロギングを行いません(おそらく、貢献者の1人がこれを修正/肯定できます)。 「内部」イベントをログに記録する場合は、カーネルのイベントハンドラに接続することができます(WindsorContainer.Kernel経由でアクセス可能)。たとえば、ComponentRegisteredイベントとDependencyResolvingイベントがあり、それぞれ登録と解決でカスタムアクションを実行できます。

関連する問題