Go : création d'une interface io.Writer pour la journalisation dans MongoDB
Comment configurer la connexion Go pour afficher des messages dans une base de données ? Plus précisément, pouvez-vous implémenter une interface io.Writer pour log.New() ?
Solution
Oui, vous pouvez créer une fonction de journalisation de base de données personnalisée. Voici comment le mettre en œuvre :
import ( "io" "log" "gopkg.in/mgo.v2" ) type MongoWriter struct { sess *mgo.Session } func (mw *MongoWriter) Write(p []byte) (n int, err error) { c := mw.sess.DB("").C("log") err = c.Insert(bson.M{ "created": time.Now(), "msg": string(p), }) if err != nil { return } return len(p), nil } func main() { // Get a MongoDB session sess, err := mgo.Dial("mongodb://localhost:27017") if err != nil { panic(err) } // Create a MongoWriter instance mw := &MongoWriter{sess} // Set the MongoWriter as the output for the default Logger log.SetOutput(mw) // Log a message that will be inserted into MongoDB log.Println("I'm the first log message.") }
Vous pouvez personnaliser MongoWriter pour contrôler le format et le comportement des messages enregistrés.
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!