web-dev-qa-db-fra.com

Application Web ASP.NET dans Azure - Comment consigner les erreurs?

J'ai déployé une application Web sur Azure, mais je ne sais pas comment consigner les erreurs.

À des fins de test, j'ai cette méthode ForceError:

public string ForceError()
{
    throw new Exception("just a test exception");
    return "ok";
}

Quelles causes et erreurs comme ceci: enter image description here

Sur Azure, j'ai activé tous les journaux de diagnostic comme ceci: enter image description here

Mais l'erreur que j'ai forcée n'apparaît pas dans le conteneur de stockage sélectionné.

Savez-vous que dois-je faire pour commencer à enregistrer toutes les erreurs de l'application?

17
nest

Sur les sites Web Azure, la meilleure façon de se connecter serait Application Insights, vous pouvez utiliser la version gratuite pour obtenir des informations sur les plantages/la vitesse/les performances.

Cependant, Application Insights est un peu plus lent si vous activez tout. Mais si vous le personnalisez et activez uniquement la journalisation des erreurs, il transmettra tous les journaux à votre compte Azure Application Insights et vous pourrez très bien le surveiller/analyser.

Pour plus de détails: https://Azure.Microsoft.com/en-in/documentation/articles/app-insights-api-custom-events-metrics/

Au lieu de configurer automatiquement Application Insights, je suggère de prendre un projet vide, de configurer les informations d'application. Notez tous les fichiers de configuration et les paquets de pépites ajoutés. Il y a un fichier de configuration perspicace, sauf la clé/signature d'application, vous pouvez tout désactiver.

Uniquement lorsque vous souhaitez suivre une exception manuellement, vous pouvez créer TelemetryClient et appeler la méthode TrackException. Vous pouvez transmettre plus de détails si vous en avez besoin.

9
Akash Kava

Je crains que le simple fait de lever une exception ne fonctionne pas dans la journalisation des applications Web Azure.

Les applications ASP.NET peuvent utiliser le System.Diagnostics.Trace classe pour consigner les informations dans le journal de diagnostic de l'application. Les quatre méthodes de l'exemple ci-dessous correspondent aux niveaux du journal de diagnostic:

Trace.TraceError("Message"); // Write an error message   
Trace.TraceWarning("Message"); // Write a warning message
Trace.TraceInformation("Message"); // Write an information message
Trace.WriteLine("Message"); // Write a verbose message

enter image description here

Outre les informations de base pour les événements consignés, le stockage de blob enregistre des informations supplémentaires telles que l'ID d'instance, l'ID de thread et un horodatage plus granulaire (format tick) dans CSV.

enter image description here

Un excellent article ici sur les conseils et les outils de journalisation.

Voir également la référence à l'officiel Document de journalisation Azure Web Apps .

27
Derek