2008-11-07 3 views
0

Je suis en train de concevoir une fonction de journalisation des erreurs afin que nos serveurs (chaque chose différente) puissent avoir un magasin de données central pour les erreurs de journalisation.la conception d'une fonctionnalité de journalisation des erreurs réparties (sur de nombreux serveurs), WCF ou?

Serait-ce une bonne idée d'avoir les différentes applications d'écriture dans le fichier journal des erreurs en utilisant un service WCF, ou est-ce une mauvaise idée?

peut le faire le faire juste par ADO.NET à la base de données, qui je pense est la route la plus simple.

Répondre

1

Je dirais qu'il suffit de vous connecter à votre magasin de données local. Les avantages sont les suivants:

  1. Speed ​​- il est assez rapide juste vider votre rapport d'erreur choisi une connexion de données existantes. Traçabilité - Que se passe-t-il si vous avez eu une erreur dans votre service? Vous perdre toute possibilité de chasser erreurs sur tous les serveurs.
  2. Simplicité - Si vous modifiez le paramètre pour votre service d'erreurs, vous devez mettre à jour toutes les autres applications qui utilise l'erreur de service .
  3. rapports - Voulez-vous vraiment chalut grâce à des rapports d'erreur de dizaines/centaines d'applications en un endroit où l'on pouvait facilement trouver les dans le magasin de données locales à l'application ?

Bien sûr, l'un de ces points pourrait être vu de l'autre côté, ce ne sont que mes opinions.

+0

il y aura peut-être 10-20 applications/services différents, je pense, mais oui point pris. –

1

Pourquoi ne pas consulter syslog? Il a été fait exactement dans ce but.

0

Nous examinons une approche similaire, à l'exception de la journalisation d'audit et de la gestion des erreurs. En regardant à l'aide de WCF sur netTcp, en regardant également en utilisant le journal des événements, mais qui semble exiger des paramètres de confiance élevés, et peut-être des problèmes de performance.

pas convaincu par les objections de ZombieSheep:

  1. Il est assez rapide pour vider votre rapport d'erreur choisi sur une connexion existante WCF. Sérieusement. De plus, vous pouvez le faire asynchrone/en file d'attente. Pas un facteur clé pour moi.

  2. Vous vous connectez au service central et au service local. Lorsque le service erroer revient en ligne, vous interrogez vos machines pour des événements depuis le dernier horodatage. Problème résolu. Utilisez un alias DNS, et ne changez pas le chemin - la façon dont vous devriez faire un adressage interne quand même IMO.

  3. Et si vous avez plusieurs applications sur une même machine? Que faire si vous voulez voir la synchronisation des erreurs entre plusieurs applications?

Questions connexes