2009-03-23 4 views

Répondre

16

Voir le document Microsoft Enterprise Library. Il comprend le Logging Application Block et cette documentation pourrait être ce que vous cherchez. Vous pouvez voir le MSDN Documentation sans devoir d'abord installer la bibliothèque. Plus précisément, voir Key Scenarios et Design of the Logging Application Block pour répondre à votre question (peut-être même si vous n'utilisez pas .NET).

MISE À JOUR (23 Avril, 2013) Voir Embracing Semantic Logging en utilisant la nouvelle Semantic Logging Application Block

+1

Je recommande vivement les gens jeter un oeil à l'édifice de l'application d'enregistrement sémantique avant la journalisation Application Block. Les avantages sont substantiels. –

+0

alors je viens chercher des bonnes pratiques de journalisation .. et je reçois un produit corporatif dans ma gorge? lol sérieusement? – abbood

+0

Ouais, sérieusement. C'est gratuit et très bien monté. Personne ne vous force à l'utiliser. Mais si vous lisez les docs avec un esprit ouvert, vous apprendrez quelques bonnes pratiques, peu importe ce que vous décidez d'utiliser à la fin. –

3

Il y a des tonnes de cadres d'exploitation forestière là-bas, y compris log4net et log4j, mais le droit pour vous dépendra de votre plate-forme et système.

Les meilleures techniques de journalisation dépendent en grande partie de votre plate-forme et de la conception de votre système. Vous devez savoir/décider de la quantité d'informations dont vous avez besoin pour diagnostiquer un type particulier de problème. Généralement, vous devez instrumenter votre code d'une manière qui ne nécessite pas beaucoup de répétition ou de modification de code. Journalisation des frameworks dans .NET qui utilisent les classes et méthodes attribuées sont un bon exemple d'instrumentation à faible impact. Vous devriez également être en mesure de modifier le niveau de journalisation (Low à Verbose) via la configuration sans avoir à arrêter ou redémarrer les services.

4

Quelques conseils:

  • journal plus que nécessaire dans la version/production
  • erreur journal jamais, si rendre possible ceci:
    • opération mis journal dans temp var (vecteur/liste)
    • à la fin si aucune erreur ne se produit, jeter les journaux, dans un autre cas envoyer le fichier journal
  • créer le drapeau pour contrôler le niveau d'information pour ouvrir une session
  • comportement journal de contrôle dans l'environnement de production/développement
  • accès concurrency de contrôle au fichier journal
  • contrôle comment journalise beaucoup de fichier long est nécessaire
  • contrôle comment journal des fichiers beaucoup de temps devrait être maintenu
  • est parfois nécessaire d'effectuer la vérification des performances, des minuteries si nécessaire
+0

avez-vous des exemples de journalisation "vectoriel" que vous décrivez ci-dessus? – EightyEight

+0

Je ne peux pas fournir de polices internes, mais je crois qu'il est très simple d'implémenter un tampon en utilisant le vecteur , il suffit d'insérer les événements dans le conteneur. – lsalamon

+0

Merci, je comprends le concept mais j'espérais que quelqu'un a déjà eu le problème. J'ai trouvé un tas d'enregistreurs pour Ruby qui ont un concept de "contexte", mais aucun d'entre eux n'est assez sophistiqué pour vider l'information de trace en cas d'erreur dans le contexte. – EightyEight

5

Un bon article est écrit sur ce par Effective logging practices ease enterprise development.

Le point crucial est:

  1. Connaître la nécessité de l'exploitation forestière.
  2. Comprendre les options disponibles et qui vous convient le mieux (varie avec Platform/OS/etc)
  3. Planifiez la stratégie à l'avance avant la mise en œuvre.
  4. Passez régulièrement en revue les modifications apportées.
+1

Un peu spécifique à Apache Log4J, mais avec quelques bits utiles. –

+4

Le lien est cassé ... –

+0

Correction du lien! –

2

est une autre solution de consignation structurée qui est devenue populaire depuis que la question a été posée pour la première fois.

Dans son interview, M. Blumhardt parle de la construction de la bibliothèque en raison de passer par la douleur de l'exploitation forestière que nous avons tous fait l'expérience. Ils parlent de l'enregistrement au cours du développement initial et de la formalisation de la journalisation à mesure que le projet mûrit. Bonnes choses et peuvent ajouter à la base de connaissances des meilleures pratiques soulevées dans la question.

Depuis le site Web:

Comme d'autres bibliothèques de journalisation pour .NET, Serilog fournit des journaux de diagnostic pour les fichiers, la console, etc. sur. Il est facile à configurer, a une API propre et est portable entre les plates-formes .NET récentes.

Contrairement à d'autres bibliothèques de journalisation pour .NET, Serilog est construit avec des données de journal structurées en tête. Les paramètres transmis avec les messages de journal ne sont pas rendus de manière destructive dans un format de texte. Au lieu de cela, ils sont conservés sous forme de données structurées qui peuvent être écrites sous forme de document à un données NoSQL magasin

2

Si vous voulez vraiment plonger dans la philosophie sur le sujet, essayez "Do Not Believe in Structured Logging" sur le blog de Miloslav Trmač.

« ... ces leçons ont été apprises à la dure ... »

Questions connexes