簡體   English   中英

記錄elastic4s客戶端

[英]Logging elastic4s client

看這個例子

client.execute{search in "places"->"cities" query "paris" start 5 limit 10}

是否有一個選項可以將日志記錄掛接到client.execute來記錄客戶端進行的所有操作(索引,搜索等)?

我看到了這個答案,但是我不想做這樣的事情:

val req = search in "index" / "type" query "kate bush"
logger.debug(s"Search request ${req.show}")

我希望客戶端根據日志記錄級別記錄所有日志

您可以定義自己的ElasticClient,並具有覆蓋執行功能

object MyElasticClientFactory {
     def fromClient(client: Client): ElasticClient = new ElasticClient {
     def close(): Unit = client.close()
     def java: Client = client

     override def execute[T, R, Q](request: T)(implicit executable: Executable[T, R, Q]): Future[Q] = {
         // TODO your logging here
         super.execute(request)
     }

}

看看TcpClient以供參考https://github.com/sksamuel/elastic4s/blob/9a4074b6ff5616b648801352b4c3629cd0fc9020/elastic4s-tcp/src/main/scala/com/sksamuel/elastic4s/TcpClient.scala

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM