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
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值