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 중국어 웹사이트의 기타 관련 기사를 참조하세요!