Journalisation personnalisée des erreurs net/http avec implémentation d'un enregistreur personnalisé
Pour enregistrer les erreurs provenant de net/http dans un format personnalisé, le champ ErrorLog de la structure net/http.Server peut être utilisée. La personnalisation de cet enregistreur implique de le remplacer par une implémentation qui adhère à l'interface io.Writer.
Implémentation d'un enregistreur personnalisé
Dans l'exemple fourni, une structure AppLogger a été définie pour enregistrer les erreurs. Pour s'aligner sur la spécification ErrorLog de net/http, cet AppLogger peut être modifié pour implémenter io.Writer :
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.Server
Pour intégrer l'enregistreur personnalisé avec le net/http.Server, instanciez-le et attribuez-le au ErrorLog field :
server := &http.Server{ Addr: addr, Handler: handler, ErrorLog: &AppLogger{logger}, // Use the custom AppLogger }
Utilisation de Zap Logger
Pour utiliser l'enregistreur Zap avec l'AppLogger personnalisé, les étapes suivantes peuvent être suivies :
Conclusion
En implémentant un enregistreur personnalisé basé sur io.Writer comme AppLogger, les erreurs provenant de net/http peuvent être enregistrées dans un format qui s'aligne sur le la stratégie de journalisation de l'application. Cela permet une journalisation rapide et flexible des erreurs dans tout le système.
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!