2012-03-02 7 views
5

Come posso registrare i log interni di Castle Windsor? Ad esempio, se non ho configurato correttamente Castle in un modo che non riesce a caricare la stringa di connessione, voglio sapere se riesco a registrare gli errori di Castle quando tenta di risolvere la stringa di connessione. Sto utilizzando Log4Net Facility e sono in grado di vedere solo i log delle applicazioni, non i registri di Windsor.Log interni per Castle Windsor

risposta

4

La chiamata a WindsorContainer.Resolve <> genererà un'eccezione se la risoluzione non riesce. È necessario registrare questa eccezione nel codice "bootstrap" responsabile della creazione del contenitore e della risoluzione dei componenti necessari. Il messaggio di eccezione in genere ti dice esattamente cosa c'è di sbagliato in dettagli strazianti.

A mia conoscenza, Windsor non esegue alcuna registrazione "interna" tramite log4net (forse uno dei contributori può correggerlo/affermarlo). Se si desidera registrare eventi "interni", è possibile collegarsi ai gestori di eventi sul kernel (accessibile tramite WindsorContainer.Kernel). Ad esempio, esistono eventi ComponentRegistered e DependencyResolving che consentono di eseguire azioni personalizzate su registrazioni e risoluzioni, rispettivamente.