这篇具有很好参考价值的文章主要介绍了go操作elasticsearch 如何打印query log。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。
我们在写代码调试的时候,有时候需要打印es的query log 看下请求json到底长什么样。在new的时候我们需要传一个 实现了 elasticsearch 这个包 Logger 接口的结构体进来。
package DbBase
import (
"fmt"
"log"
"net"
"net/http"
"time"
"github.com/spf13/viper"
"gopkg.in/olivere/elastic.v5"
)
var esClient *elastic.Client
var err error
//tracelog 实现 elastic.Logger 接口
type tracelog struct{}
//实现输出
func (tracelog) Printf(format string, v ...interface{}) {
fmt.Printf(format, v...)
}
func InitEs() {
httpClient := &http.Client{}
httpClient.Transport = &http.Transport{
Proxy: http.ProxyFromEnvironment,
DialContext: (&net.Dialer{
Timeout: 5 * time.Second,
KeepAlive: 30 * time.Second,
}).DialContext,
MaxIdleConns: 200,
MaxIdleConnsPerHost: 200,
IdleConnTimeout: 90 * time.Second,
TLSHandshakeTimeout: 10 * time.Second,
ExpectContinueTimeout: 1 * time.Second,
}
esClient, err = elastic.NewClient(
elastic.SetHttpClient(httpClient),
elastic.SetSniff(false),
elastic.SetURL(viper.GetString("es.weili.host")),
elastic.SetHealthcheck(false),
elastic.SetTraceLog(new(tracelog)), // 这一 必须的
)
if err != nil {
log.Fatalln(err)
}
}
func GetEs() *elastic.Client {
return esClient
}
文章来源地址https://www.toymoban.com/news/detail-497671.html
文章来源:https://www.toymoban.com/news/detail-497671.html
到了这里,关于go操作elasticsearch 如何打印query log的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!