10
votes

Singleton Logger, enregistreur statique, enregistreur d'usine ... Comment se connecter?

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.

Je veux pouvoir sous-classer un enregistreur (c'est-à-dire de fournir une journalisation spécifique de domaine).

Quelle est la meilleure façon de faire cela?

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.

Par exemple,

journal (mydomainobj obj, chaîne msg)


0 commentaires

3 Réponses :


14
votes

Consultez Nlog . Ils utilisent ce type de motif: xxx

Vous pouvez ensuite spécialiser la sortie basée sur la classe que mydomainlogger appartient à.

Plus de détails: xxx

puis dans votre sortie, vous pouvez l'avoir sortie "MyDomain.Somefunc" dans le message "Ceci est un test".


0 commentaires

6
votes

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. XXX

Ce faisant de cette façon, je peux obtenir des journaux comme ceci:

2009-07-15 09: 48: 51 674 [4420] Déboguer Samplenamespace.sampleclass [(null)] - Exemple de message que vous souhaitez produire


0 commentaires

6
votes

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.


0 commentaires