python -asticsearch: как включить ведение логов? - PullRequest
0 голосов
/ 12 октября 2018

Я использую модуль python -asticsearch, я прочитал в документации python -asticsearch, что вы можете регистрировать все базовые HTTP-запросы как командную строку curl команды :

asticsearch.trace может быть использован для регистрации запросов к серверу в виде команд curl с использованием довольно распечатанного json, который затем может быть выполнен из командной строки.Поскольку он предназначен для совместного использования (например, для демонстрации проблемы), он также просто использует localhost: 9200 в качестве адреса вместо фактического адреса хоста.Если регистратор трассировки еще не настроен, он настроен на распространение = False, поэтому его необходимо активировать отдельно.

Для модуля python -asticsearch, как включить это curlведение журнала?

Я пытался:

  • установить глобальный регистратор на logging.basicConfig(level=logging.DEBUG), но это не вывело curl
  • Я пытался получить elasticsearch.trace регистратор и установка уровня этого регистратора на logging.DEBUG, а затем установка es_trace_logger.propagate = True, но ни один из них не работал

1 Ответ

0 голосов
/ 13 октября 2018

Я думаю, что один из важных шагов, который вы могли бы пропустить, - это добавить обработчик в 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","_
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...