python-asticsearch: как включить запись локон?
Я использую модуль python-asticsearch, я прочитал в документации по python-asticsearch, что вы можете регистрировать все базовые HTTP-запросы в виде командной строки curl
команды:
asticsearch.trace может использоваться для регистрации запросов к серверу в форме команд curl с использованием симпатичного печатного json, который затем может быть выполнен из командной строки. Поскольку он предназначен для совместного использования (например, для демонстрации проблемы), он также просто использует localhost:9200 в качестве адреса вместо фактического адреса хоста. Если регистратор трассировки еще не настроен, он настроен на распространение =False, поэтому его необходимо активировать отдельно.
Как включить этот модуль для модуля python-asticsearch curl
протоколирование?
Я старался:
- установка глобального регистратора в
logging.basicConfig(level=logging.DEBUG)
но это не вывело локон - Я пытался получить
elasticsearch.trace
регистратор и установка уровня этого регистратора вlogging.DEBUG
а затем настройкаes_trace_logger.propagate = True
но ни один из них не работал
1 ответ
Я думаю, что одним из важных шагов, который вы можете пропустить, является добавление обработчика в 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","_