1

J'utilise Enterprise Library 5.0 pour le mécanisme de journalisation. J'utilise un fichier plat et DB auditeurs. Je veux m'assurer que les erreurs ont été enregistrées dans la base de données et dans le cas où une erreur se produisait en faisant la même chose, l'erreur devrait automatiquement commencer à se connecter dans les fichiers plats. Je suppose que nous devons passer automatiquement à la journalisation de fichier plat en cas d'exception.Comment vous assurer que la bibliothèque d'entreprise Logger.Write() a fonctionné?

loggingConfiguration name="Logging" tracingEnabled="true" defaultCategory="DatabaseLogging" 

Mais je crois que le defaultCateogory est une propriété en lecture seule pour la section. Comment je peux le faire par programme?

+0

:-D C'est mon nom de famille! J'apprécierais votre aide sur le problème :-) –

Répondre

0

Il existe une catégorie spéciale appelée Erreurs de consignation & Avertissements que vous devez connecter à un programme d'écoute pour être averti lorsque votre catégorie de consignation normale échoue. Vous devriez également mettre les auditeurs sur votre catégorie normale dans l'ordre du plus susceptible de travailler au plus susceptible d'échouer, car l'écriture aux auditeurs s'arrêtera une fois qu'il y a un échec. En outre, la catégorie par défaut n'est pas en lecture seule. C'est la catégorie dans laquelle les journaux seront écrits si vous ne spécifiez pas de catégorie lors de la création d'une entrée de journal. Les erreurs de journalisation ne seront cependant pas écrites dans cette catégorie. Ceux-ci vont seulement aux erreurs de notation & Avertissements catégorie spéciale.

+0

Ainsi de ce que je peux comprendre est que (corrigez-moi si je me trompe), les erreurs de notation et les avertissements fonctionneront dans les scénarios où notre catégorie normale échouera. Eh bien, quand j'ai essayé de définir la valeur de catégorie par défaut du programme, il lançait une exception qui était en lecture seule (j'obtenais la configuration de la consignation en tant que section) –

+0

Les journaux sont envoyés aux erreurs et avertissements de journalisation lorsqu'une catégorie normale correspond, mais une exception s'est produite lors de l'appel d'un écouteur de trace. Lorsqu'aucune catégorie ne correspond, ils sont envoyés à la catégorie par défaut. Vous pouvez définir la catégorie par défaut dans le fichier de configuration ou utiliser [l'API courante] (http://msdn.microsoft.com/fr-fr/library/ff664363 (v = pandp.50) .aspx) pour configurez la bibliothèque d'entreprise. Il est peut-être possible de combiner ces approches, mais je n'ai jamais essayé de le faire. Changer directement la section de configuration dans le code ne fonctionnera pas. –

1

Vous pouvez envisager d'utiliser les tests unitaires, pour vous assurer que la consignera les erreurs dans tout scénario différent, c'est pourquoi nous avons test unitaire :)

Les tests unitaires sont tout au sujet de l'automatisation, de sorte que vous devez être en mesure automatiser la validation des entrées du journal.

Vous pouvez également envisager d'utiliser la priorité. (il est utilisé pour filtrer les entrées de journal, seuls ceux qui sont au-dessus de la "priorité minimale" sont traités), donc quelque chose a une haute priorité, il peut aussi aller dans le fichier plat.

Espérons que cela aidera.

+0

Merci pour une réponse rapide, Si nous automatisons l'utilisation de VSTS 2010 (outil d'automatisation) Je suppose que la seule façon de vérifier le journal dans la base de données est de faire un appel db cher et vérifier si l'enregistrement existe. Ce serait génial si la méthode logger.write lève une exception en cas d'erreur survenant lors de la création de db. –

+0

@Bose_geek, vous pouvez créer/simuler des écouteurs de trace personnalisés que vous pouvez interroger pour valider que les messages appropriés ont été consignés. Voir http://stackoverflow.com/questions/1759141/programmatic-configuration-of-enterprise-library-logging-block pour un exemple de bibliothèque d'entreprise. La configuration serait différente mais l'approche similaire. –

Questions connexes