倒腾一个新东西,首先是要了解基本概念,之后就是要学习如何 debug 。要不然很容易出现抓瞎的情况。搞定这两点剩下的就是耐心和恒心的问题了。
Log level
一般 log 会根据不同的 log level 输出不同的内容。如果是开发模式,一般把 log level 设置为 debug 是和方便的。
Elasticsearch 的配置文件在 confg/
目录下。
一共有两个文件,一个是 elasticsearch.yml
,是对 Elasticsearch 本身进行配置, 比如 cluster name 之类的。
一个是 logging.yml
,用来配置 log 。
我们只要在 logging.yml
把 es.logger.level: INFO
改为 es.logger.level: DEBUG
即可。
Logging Requests to Elasticsearch
我遇到的问题是的第三方库,对 request 做了封装,返回缺少我需要的信息。而 clojure 又不方便去改库的源码。所以果断考虑用 Elasticsearch 的 log。
方法如下:
elasticsearch.yml
file
可以通过更改 elasticsearch.yml
达到 log request 的目的。加入以下代码:
index.search.slowlog.threshold.query.debug: 0s
index.search.slowlog.threshold.fetch.debug: 0s
index.indexing.slowlog.threshold.index.debug: 0s
默认的 log 输出在 logs/elasticsearch_index_indexing_slowlog.log
和 logs/elasticsearch_index_search_slowlog.log
里。可以通过 tail -f
进行查看。
顺带一提,Elasticsearch 自动按时间做了分割,大赞。
配置完,我们可以通过 http://localhost:9200/_settings 查看我们的配置是否成功。
Runtime Settings
我们还可以通过 HTTP API 更改设置,这样做的好处是可以不需要重启 Elasticsearch 。
curl -XPUT "http://localhost:9200/_settings" -H 'Content-Type: application/json' -d'
{
"index.search.slowlog.threshold.query.debug": "0s",
"index.search.slowlog.threshold.fetch.debug": "0s",
"index.indexing.slowlog.threshold.index.debug": "0s"
}'
小结
Elasticsearch 使用起来很舒服,无论是文档,还是 API,都非常好用。有很多让人眼前一亮的小细节,比如在请求里加上 `pretty' ,会有漂亮的输出。
从这些小事可以看出,Elasticsearch 是一款很用心的产品。
参考
http://blog.florian-hopf.de/2...
https://www.elastic.co/guide/...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。