Connexion personnalisée dans net/http
Le package net/http fournit un moyen pratique de gérer les requêtes et les réponses HTTP dans les applications Go. Cependant, il utilise son propre enregistreur par défaut pour le rapport d'erreurs. Pour une journalisation des erreurs personnalisée, il est possible de spécifier un enregistreur personnalisé pour la structure du serveur net/http. Cet article montre comment y parvenir.
Implémentation d'un enregistreur personnalisé
Supposons que vous disposiez d'une implémentation d'enregistreur personnalisé appelée AppLogger, qui utilise un enregistreur zap en interne. Pour intégrer cet enregistreur personnalisé avec net/http, vous pouvez créer un nouveau type qui implémente l'interface io.Writer et utilise AppLogger pour écrire les erreurs.
type serverJsonWriter struct { io.Writer } func (w serverJsonWriter) Write(p []byte) (n int, err error) { // Here you would implement custom logging logic using your AppLogger // ... return len(p), nil }
Remplir la structure du serveur
Pour utiliser votre enregistreur personnalisé avec la structure Server, vous devez simplement définir le champ ErrorLog sur une instance de votre type serverJsonWriter. Vous devrez également utiliser l'enregistreur zap que votre AppLogger encapsule pour initialiser le log.Logger.
logger, err := cfg.Build() if err != nil { // Handle error } server := &http.Server{ Addr: addr, Handler: handler, ErrorLog: logger.New(&serverJsonWriter{}, "", 0), }
En implémentant cette méthode, les erreurs net/http seront enregistrées selon vos spécifications personnalisées, permettant ainsi plus d'informations. contrôle de la journalisation et du rapport d'erreurs dans votre application.
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!