Wie kann ich die Protokollierung im net/http-Paket von Go anpassen?

Linda Hamilton
Freigeben: 2024-11-28 02:11:11
Original
576 Leute haben es durchsucht

How Can I Customize Logging in Go's net/http Package?

Passen Sie die Anmeldung bei net/http mit einem benutzerdefinierten Writer an

Um Fehler von net/http in einem benutzerdefinierten Format zu protokollieren, nutzen Sie das http.Server.ErrorLog-Feld, das eine Implementierung des log.Logger akzeptiert Schnittstelle.

Implementieren eines benutzerdefinierten Loggers

Um Ihren eigenen Logger zu implementieren, definieren Sie einen Typ, der die io.Writer-Schnittstelle erfüllt und die Write-Methode implementiert, um Nachrichten an Ihre weiterzuleiten gewünschtes Protokollierungsformat. Zum Beispiel:

type AppLogger struct {
    log *zap.SugaredLogger
}

func (l *AppLogger) Write(p []byte) (n int, err error) {
    l.log.Errorw(string(p))
    return len(p), nil
}
Nach dem Login kopieren

Integration mit net/http

Um Ihren benutzerdefinierten Logger mit net/http zu verwenden, weisen Sie dem Feld ErrorLog eine Instanz Ihres AppLogger-Typs zu Ihres http.Servers:

server := &http.Server{
    Addr:     addr,
    Handler:  handler,
    ErrorLog: logger.New(&AppLogger{logger}, "", 0),
}
Nach dem Login kopieren

Mit Zap Logger

Um Ihren Zap-Logger mit net/http zu integrieren, können Sie einen benutzerdefinierten Writer erstellen, der Fehlermeldungen an Ihren Zap-Logger weiterleitet:

type fwdToZapWriter struct {
    logger *zap.SugaredLogger
}

func (fw *fwdToZapWriter) Write(p []byte) (n int, err error) {
    fw.logger.Errorw(string(p))
    return len(p), nil
}
Nach dem Login kopieren

Weisen Sie dann eine Instanz von zu Ihren fwdToZapWriter in das ErrorLog-Feld Ihres http.Servers:

server := &http.Server{
    Addr:     addr,
    Handler:  handler,
    ErrorLog: logger.New(&fwdToZapWriter{logger}, "", 0),
}
Nach dem Login kopieren

Durch die Implementierung dieser Schritte protokollieren Sie Fehler von net/http im benutzerdefinierten Format, das von Ihrem AppLogger oder Zap-Logger bereitgestellt wird.

Das obige ist der detaillierte Inhalt vonWie kann ich die Protokollierung im net/http-Paket von Go anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage