Je suis en train d'envelopper les modèles et les pratiques Bloc d'application de la bibliothèque d'entreprise pour une application écrite dans .NET. P>
Je veux pouvoir sous-classer un enregistreur (c'est-à-dire de fournir une journalisation spécifique de domaine). P>
Quelle est la meilleure façon de faire cela? P>
Pour E.G, j'ai une classe d'enregistreuse statique pour le moment, mais cela ne me permet pas de la spécialiser pour la journalisation spécifique de domaine. P>
Par exemple, P>
journal (mydomainobj obj, chaîne msg) code> p>
3 Réponses :
Consultez Nlog . Ils utilisent ce type de motif: Vous pouvez ensuite spécialiser la sortie basée sur la classe que Plus de détails: p> puis dans votre sortie, vous pouvez l'avoir sortie "MyDomain.Somefunc" dans le message "Ceci est un test". P> P> mydomainlogger code> appartient à. P>
Aussi, Checkout log4net . Je n'ai jamais trouvé que la journalisation de El 'est aussi flexible que Log4Net. J'ai choisi Log4Net depuis que j'avais déjà connu avec Log4J. Ce faisant de cette façon, je peux obtenir des journaux comme ceci: P> 2009-07-15 09: 48: 51 674 [4420] Déboguer
Samplenamespace.sampleclass [(null)] -
Exemple de message que vous souhaitez produire p>
blockQuote> p>
Vous pouvez même faire mieux que cela. Écrivez une classe wrapper qui enveloppe Nlog ou Log4Net ou. Vous pouvez ensuite utiliser cette classe wrapper (peut-être utiliser une interface si vous voulez vraiment découpler des choses) dans votre code. De cette façon, si vous décidez de modifier la classe de l'enregistreur, vous devez modifier une seule classe et ne pas modifier toutes vos classes. P>