Ich teste eine Go-Anwendung mit Iris. Ich möchte jeden Fehler oder eine Ausnahme in meinem Rollbar-Konto protokollieren.Iris - Wie protokolliert man Fehler/Ausnahmen?
Zum Beispiel, wenn der Endpunkt zu lange dauert, um zu antworten und es ein Timeout gibt, möchte ich es protokollieren. Wie kann ich solche Fehler erfassen?
aktualisieren
ich in der Dokumentation die OnError
Methode, und ich dachte, dass ich es so verwenden könnte:
iris.OnError(iris.StatusServiceUnavailable, func(c *iris.Context) {
c.Write("503")
params := string(c.RequestCtx.Request.Body())
rollbar.Error("error", errors.New("503 Service Unavailable"), &rollbar.Field{Name: "request_body", Data: params})
})
Aber es ist, den Fehler zu Rollbar nicht anzumelden.
Das sieht interessant aus. Aber sollte nicht 'Next()' der letzte Aufruf in dieser Funktion sein? – Guilherme
Nein. In einfachen Worten ruft Next() den nächsten Handler in der Verarbeitungskette auf (der letzte ist der Handler der Anfrage). Sie nannten Kettenverkettungen, aber ich würde eher vorschlagen, über sie nachzudenken, eher wie eine russische Puppe als eine Kette. Wenn Sie den Next() - Aufruf an das Ende der Firmware verschieben, werden alle Messungen und Protokollierungen ausgeführt, bevor Sie den Handler aufrufen. – Seva
Ein anderes Beispiel wäre github.com/iris-contrib/middleware/logger. Schau dir die Serve() Methode an. – Seva