2009-12-12 3 views
3

Le problème est que NHibernates dépend de log4net. J'essaye de construire une application de l'IoC avec des bûcherons interchangeables, et cette chose entrave le chemin.NHibernate sans log4net?

Existe-t-il une version sans cette dépendance ou dois-je faire du code source ouvert me piratant?

+0

pourrait vous expliquer davantage pourquoi/comment cela vous dérange? –

+1

Je veux utiliser des pratiques IoC et je préfère avoir un logger différent de log4net, c'est-à-dire NLog – Dann

Répondre

5

Il existe déjà an open bug on NHibernate bug tracker concernant ce problème et un ou plusieurs correctifs existent déjà, vous pouvez donc utiliser ceux-ci. Le problème est qu'ils ne sont pas encore intégrés sur le tronc alors YMMV ...

+0

merci pour cela. Je viens de télécharger la source, arraché Log4Net, et accroché tous les appels à un adaptateur LogManager sur lequel je peux utiliser IoC. A dû enlever beaucoup de tests NHibernate :(mais c'est la vie quand votre code de piratage – Dann

+1

yeap, mais c'est aussi la bonne chose: vous * êtes * capable de pirater le code;) –

1

Oui c'est actuellement une dépendance dure. Je pense que vous pouvez obtenir ce que vous voulez en créant un appender pour log4net et ensuite en injectant votre vrai enregistreur dans cet appender. Donc, essentiellement, vous aurez log_net log à votre API de journalisation qui utilisera le vrai enregistreur que vous injectez.

Vous pouvez également examiner cette question en rapport semi-: Using Enterprise Library Logging Application Block in NHibernate

+0

Ah je vois comment cela fonctionne. Si j'en ai besoin, je vais utiliser cette méthode, mais j'ai le hack à travailler pour l'instant, donc je vais l'utiliser jusqu'à ce que ça fasse des bugs. – Dann