记录mgo在应用程序中激发的所有查询
如何在标准输出中使用mgo记录每个查询?记录mgo在应用程序中激发的所有查询,go,mgo,Go,Mgo,如何在标准输出中使用mgo记录每个查询? 我设置了logger,但它在没有实际查询的情况下显示了大量信息。来自mgo的作者Gustavo Niemeyer的回答: 有两种方法可以处理此问题: 通过启用MongoDB日志记录 这独立于驱动程序(本例中为mgo),并且可以 在shell中或通过mgo运行相应命令来启用: 通过启用mgo日志记录 您可以通过标准软件包的 log.新功能,并将其提供给mgo的SetLogger功能: , 使用mgo.SetDebug增加详细度: 因此,如果已经设置了记
我设置了logger,但它在没有实际查询的情况下显示了大量信息。来自mgo的作者Gustavo Niemeyer的回答: 有两种方法可以处理此问题:
因此,如果已经设置了记录器,请启用调试模式。我无法让mgo使用SetLogger和SetDebug记录查询。相反,我通过封送到json字符串,然后打印来解决这个问题:
q = bson.M{}
jsonString, _ := json.Marshal(q)
fmt.Printf("mgo query: %s\n", jsonString)
如果需要调试查询,还可以将其输出复制/粘贴到标准mongo客户端。注意,方法2将仅捕获Go mongo客户端实例发出的查询。它不会捕获其他Mongo客户端发出的查询。这对我不起作用。我可以看到mgo的很多输出,但看不到查询。