Go:建立用於日誌記錄到MongoDB 的io.Writer 介面
如何設定Go 中的日誌資料庫?具體來說,您可以為 log.New() 實作一個 io.Writer 介面嗎?
解決方案
是的,您可以建立自訂資料庫日誌記錄功能。以下是如何實現它:
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.") }
您可以自訂 MongoWriter 來控制記錄訊息的格式和行為。
以上是如何在 Go 中實作 io.Writer 介面來記錄到 MongoDB?的詳細內容。更多資訊請關注PHP中文網其他相關文章!