2009-12-05 15 views
4

Recherche d'une infrastructure de journalisation commerciale pour les systèmes distribués. Ce cadre doit permettre aux applications .NET sur un serveur distant d'enregistrer les messages qui peuvent ensuite être collectés dans un emplacement central. Si possible, l'emplacement central doit stocker les messages dans une base de données SQL Server.Moteur de journalisation distribué fiable (durable)

Exigences:

  1. pouvoir lancer l'enregistrement des messages sur le serveur à distance, même si les perturbations de réseau empêchent dispatching immédiate du message à l'emplacement central.
  2. L'envoi de messages à l'emplacement central doit être géré par un processus autre que celui qui exécute l'application .NET, afin d'empêcher toute diminution des performances des applications ASP.NET ou des services Web.
  3. Livraison garantie des messages à l'emplacement central. par exemple. En cas de redémarrage du serveur distant vers la fin d'une période où le réseau ne répond pas, les messages consignés doivent toujours être remis lorsque le serveur distant et les conditions réseau normales sont restaurées.

Répondre

0

log4net est le choix. C'est thread-safe.

+1

Il est thread-safe, mais à moins que je comprends mal, il ne propose pas intégré distribué, la gestion durable des messages consignés. –

1

Probablement une solution très simple peut être de continuer à écrire des journaux locaux et de créer un processus séparé pour republier le journal sur un serveur. Vous pouvez publier le journal à l'aide de plusieurs options, notamment un bus de publication de message de souscription tel que MassTransit ou msmq. L'utilisation d'une solution différente comme l'écriture d'un adaptateur log4net spécifique est certainement une option, mais elle peut entraîner des problèmes de couplage/dépendances. L'adoption doit donc prendre en compte l'environnement de déploiement réel.

1

Je pense que vous devriez être capable de le faire en utilisant Microsoft Enterprise Library et MSMQ out of the box. Le bloc d'application Entlib Logging a un écouteur MSMQ intégré. Bien que nous ayons utilisé la journalisation Entlib sur plusieurs projets, je n'ai pas personnellement utilisé le service de distribution MSMQ.

http://msdn.microsoft.com/en-us/library/dd203267.aspx