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 を調整して、ログに記録されるメッセージの形式と動作を制御できます。
以上がMongoDB にログを記録するために Go に io.Writer インターフェイスを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。