Maison >développement back-end >Golang >Comment puis-je personnaliser la connexion dans le package net/http de Go ?
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 }
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), }
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 }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), }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!