Maison > développement back-end > Golang > le corps du texte

Comment puis-je personnaliser la connexion dans le package net/http de Go ?

Linda Hamilton
Libérer: 2024-11-28 02:11:11
original
576 Les gens l'ont consulté

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

Personnaliser la connexion sur net/http avec un rédacteur personnalisé

Pour enregistrer les erreurs depuis net/http dans un format personnalisé, tirez parti du http.Server.ErrorLog, qui accepte une implémentation du log.Logger

Implémentation d'un enregistreur personnalisé

Pour implémenter votre propre enregistreur, définissez un type qui satisfait à l'interface io.Writer et implémente la méthode Write pour transférer les messages vers votre format de journalisation souhaité. Par exemple :

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
}
Copier après la connexion

Intégration avec net/http

Pour utiliser votre enregistreur personnalisé avec net/http, attribuez une instance de votre type AppLogger au champ ErrorLog de votre http.Serveur :

server := &http.Server{
    Addr:     addr,
    Handler:  handler,
    ErrorLog: logger.New(&AppLogger{logger}, "", 0),
}
Copier après la connexion

Utiliser Zap Logger

Pour intégrer votre enregistreur Zap avec net/http, vous pouvez créer un rédacteur personnalisé qui transmet les messages d'erreur à votre enregistreur Zap :

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
}
Copier après la connexion
Ensuite, attribuez une instance de votre fwdToZapWriter au champ ErrorLog de votre http.Server :

server := &http.Server{
    Addr:     addr,
    Handler:  handler,
    ErrorLog: logger.New(&fwdToZapWriter{logger}, "", 0),
}
Copier après la connexion
En mettant en œuvre ces étapes, vous serez journalisation des erreurs depuis net/http dans le format personnalisé fourni par votre enregistreur AppLogger ou Zap.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal