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 }
server := &http.Server{ Addr: addr, Handler: handler, ErrorLog: logger.New(&fwdToZapWriter{logger}, "", 0), }
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!