如何使用标准输出中的mgo记录每个查询? 我设置了记录器,但它显示了大量信息而没有实际查询。
答案 0 :(得分:3)
mgo的作者Gustavo Niemeyer的回答:github
有两种方法可以解决此问题:
启用MongoDB日志记录
这与驱动程序(在这种情况下为mgo)无关,并且可以 在shell中启用或通过mgo运行相应的命令:
- 醇>
启用mgo日志记录
您可以通过标准软件包创建Logger来完成此操作 log.New函数并将其提供给mgo的SetLogger函数:
http://docs.mongodb.org/manual/reference/method/db.setProfilingLevel/,http://golang.org/pkg/log/#New
使用mgo.SetDebug来增加详细程度:
因此,如果您已经设置了Logger,请启用调试模式。
答案 1 :(得分:1)
我无法使用SetLogger和SetDebug来记录查询。相反,我通过封送到json字符串然后打印来解决这个问题:
q = bson.M{}
jsonString, _ := json.Marshal(q)
fmt.Printf("mgo query: %s\n", jsonString)
如果需要调试查询,也可以将其输出复制/粘贴到标准的mongo客户端。