【问题标题】:python-elasticsearch: how do you enable curl logging?python-elasticsearch:如何启用 curl 日志记录?
【发布时间】:2018-10-12 16:07:03
【问题描述】:

我正在使用 python-elasticsearch 模块,我在python-elasticsearch documentation that you can log all the underlying HTTP requests as command line curl commands 中阅读:

elasticsearch.trace 可用于记录对服务器的请求 使用漂亮打印的 json 的 curl 命令形式,然后可以 从命令行执行。因为它是为共享而设计的(对于 演示问题的示例)它也只使用 localhost:9200 作为 地址而不是主机的实际地址。如果痕迹 logger 尚未配置,它设置为propagate=False 所以 它需要单独激活。

对于 python-elasticsearch 模块,如何启用 curl 日志记录?

我试过了:

  • 将全局记录器设置为logging.basicConfig(level=logging.DEBUG),但没有输出 curl
  • 我尝试获取elasticsearch.trace 记录器并将该记录器的级别设置为logging.DEBUG,然后设置es_trace_logger.propagate = True,但这些都不起作用

【问题讨论】:

  • 尝试初始化elasticsearch记录器并将其级别设置为DEBUG
  • @Jay 所以logger = logging.getLogger('elasticsearch'); logger.setLevel(logging.DEBUG)?你试过这个并且知道它有效吗?
  • 嗯,elasticsearch 记录器只会显示GET/POST 请求和相应的响应。 elasticsearch.trace 记录器将以更好的方式显示与 curl 请求和美化 json 相同的信息。

标签: python elasticsearch logging instrumentation elasticsearch-py


【解决方案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 logger 会输出类似这样的东西——

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","_

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-14
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 2018-05-06
    相关资源
    最近更新 更多