Я думаю, что один из важных шагов, который вы могли бы пропустить, - это добавить обработчик в elasticsearch.trace
регистратор.
import logging
es_trace_logger = logging.getLogger('elasticsearch.trace')
es_trace_logger.setLevel(logging.DEBUG)
handler = logging.StreamHandler()
es_trace_logger.addHandler(handler)
Итак, я добавил StreamHandler
в регистратор, поэтому все журналыперейдет к stdout
.При необходимости вы можете добавить другой обработчик в соответствии с вашим вариантом использования, например FileHandler
.
Вот пример журнала отладки для того же самого -
curl -XGET 'http://localhost:9200/my_index/_search?pretty' -d '{
"size": 100
}'
#[200] (1.311s)
#{
# "_shards": {
# "failed": 0,
# "successful": 6,
# "total": 6
# },
# "hits": {
# "hits": [
# {
# "_id": "FLKSD0SDFJJSDF7D518319DE5EEBB5d5b07044",
Наличие этого регистратора будет регистрироватьвесь запрос и ответ для каждого запроса, который мы выполняем, поэтому иногда эти журналы могут быть перегружены, но довольно хороши для отладки.
Для того же запроса соответствующий elasticsearch
регистратор выдаст что-то вроде этого -
GET http://my_es_host:9200/my_index/_search [status:200 request:1.528s]
> {"size": 100}
< {"took":21,"timed_out":false,"_shards":{"total":6,"successful":6,"failed":0},"hits":{"total":112,"max_score":1.0,"hits":[{"_index":"my_index","_