Ich benutze Gorilla Mux für alle meine Routing. Jetzt funktioniert meine App gut, ich möchte einen Weg finden, alle meine Antwortcodes beispielsweise auf zu protokollieren. Ich habe dieses Paket gefunden: https://godoc.org/github.com/gorilla/handlers#LoggingHandlerGorilla Mux, der beste Weg, um Antwortcodes zu "fangen"
Das ermöglicht mir, alle Antworten in Apache-Format auszugeben. Obwohl das nett ist, ist es nicht 100% was ich will. Ich möchte nur extract
die Antwort statusses und sende sie an Statds. Was ist der beste/einfachste Weg, dies zu erreichen?
package main
import (
"log"
"net/http"
"os"
"github.com/gorilla/handlers"
"github.com/gorilla/mux"
"github.com/rogierlommers/mux-status-handler/articles"
"github.com/rogierlommers/mux-status-handler/users"
)
func main() {
r := mux.NewRouter()
r.HandleFunc("/products", articles.Handler)
r.HandleFunc("/users", users.Handler)
loggedRouter := handlers.LoggingHandler(os.Stdout, r)
log.Println("listening on 8080")
http.ListenAndServe(":8080", loggedRouter)
}
Above Code gibt mir dies:
Also ich suche etwas Ähnliches, aber stattdessen die Protokolle Apache Zugriff der Ausgabe an stdout, ich möchte ", um der Lage sein, mach etwas "mit dem Antwortcode. Ich habe auch ein einfaches Repo erstellt, das meinen Beispielcode enthält. Sie können es here finden.
Ich weiß nicht genau verstehen, was Sie meinen, aber wenn Sie den Antwortcode anmelden, und eine Ausgabe wie folgt aus: '2017.02.10 17.25.48 127.0.0.1:63747 [/ foo] 405 19 15.059μs' könntest du violetear versuchen - https://violletear.org/ – nbari
Mein Ziel ist es, HTTP-Antwortcodes an einen anderen Dienst zu melden (um genau zu sein: statds). Also brauche ich einen Mechanismus, der die Antwortcodes von allen Handlern extrahiert und an statds sendet. –
Kopieren Sie, was der LoggingHandler tut: Erstellen Sie Ihren eigenen Typ, der die 'http.ResponseWriter'-Schnittstelle erfüllt, und protokollieren Sie bei der' Write'-Methode, was Sie benötigen. – elithrar