2016-02-29 6 views
11

Ich habe eine Webanwendung zu Azure bereitgestellt, aber ich weiß nicht, wie Fehler protokolliert werden.ASP.NET-Webanwendung in Azure - Wie protokolliert man Fehler?

Für Testzwecke Ich habe diese ForceError Methode:

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

die wie folgt verursacht und Fehler: enter image description here

Auf Azure ich alle Diagnoseprotokolle wie folgt aktiviert: enter image description here

Aber Der erzwungene Fehler wird nicht im ausgewählten Speichercontainer angezeigt.

Wissen Sie, was ich tun soll, um alle Fehler von der Anwendung zu protokollieren?

Antwort

5

Auf Azure-Websites wäre die beste Möglichkeit zum Protokollieren Application Insights. Sie können die kostenlose Version verwenden, um Informationen zu Abstürzen/Geschwindigkeit/Leistung zu erhalten.

Allerdings ist Application Insights etwas langsamer, wenn Sie alles aktivieren. Aber wenn Sie es anpassen und nur die Fehlerprotokollierung aktivieren, würde es alle Protokolle in Ihr azur-Konto für Anwendungseinblicke verschieben und Sie können es sehr gut überwachen/analysieren.

Für weitere Informationen: https://azure.microsoft.com/en-in/documentation/articles/app-insights-api-custom-events-metrics/

Statt automatisch Praktische Anwendung zu konfigurieren, würde ich vorschlagen, nehmen Sie ein leeres Projekt, Setup-Programm Einblicke. Beachten Sie alle hinzugefügten Konfigurationsdateien und Nuget-Pakete. Es gibt einige Einblick Konfigurationsdatei, außer Anwendungsschlüssel/Unterschrift, können Sie alles ausschalten.

Nur wenn Sie eine Ausnahme manuell nachverfolgen möchten, können Sie TelemetryClient erstellen und die TrackException-Methode aufrufen. Sie können mehr Details weitergeben, wenn Sie brauchen.

+0

Hallo, das scheint das zu sein, wonach ich gesucht habe. Können Sie näher erläutern, wie Sie App Insights für die Protokollierung auf Fehlerebene verwenden und/oder eine Referenz bereitstellen? – nest

+1

Nur ein Zusatz, wenn Sie wie ich mvc-Framework verwenden, sagt dies genau, wie es geht. https://azure.microsoft.com/en-us/documentation/articles/app-insights-asp-net-exceptions/#mvc – nest

11

Ich befürchte, dass das Auslösen einer Ausnahme in Azure Web Application Logging nicht funktioniert.

ASP.NET-Anwendungen können die Klasse System.Diagnostics.Trace zum Protokollieren von Informationen in das Anwendungsdiagnoseprotokoll verwenden. Die vier Verfahren, die in Beispiel entsprechen unten mit den Diagnoseprotokollebenen:

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

Neben der Grundinformation für protokollierte Ereignisse, blob Speicherprotokoll zusätzliche Informationen wie die Instanz-ID, Thread ID und ein granulärer Zeitstempel (Tick-Format) in CSV.

enter image description here

Ein großer Artikel here über Logging-Tipps und Tools.

Siehe auch die Referenz auf die offizielle Azure Web Apps Logging Document.

Verwandte Themen