如何将elasticsearch库的日志记录级别设置为与我自己的日志记录不同?

hal*_*leo 10 python logging module

如何将elasticsearch库的日志记录级别设置为与我自己的日志记录不同?为了说明这个问题,我描述了模块场景.我有一个lookup.py使用elasticsearch这样的模块:

import logging
logger = logging.getLogger(__name__)
import elasticsearch

def get_docs():
    logger.debug("search elastic")
    es = elasticsearch.Elasticsearch('http://my-es-server:9200/')
    res = es.search(index='myindex', body='myquery')
    logger.debug("elastic returns %s hits" % res['hits']['total'])
    .
    .
.
Run Code Online (Sandbox Code Playgroud)

然后在我的主文件中

import logging
import lookup.py

logging.root.setLevel(loglevel(args))
get_docs()
.
.
.
Run Code Online (Sandbox Code Playgroud)

我得到很多的调试消息从内部的Elasticsearch对象.如何在lookup.py不抑制调试消息的情况下用一些代码来抑制它们lookup.py?这个Elasticsearch班似乎有一个logger对象; 我试图把它设置为None,但这并没有改变任何东西.

Tho*_*hom 8

以下两行为我提供了抑制来自es库的过多日志记录的技巧.

es_logger = logging.getLogger('elasticsearch') es_logger.setLevel(logging.WARNING)


小智 7

在最近(v8.5)版本的elasticsearch中,喋喋不休的POST日志似乎已移至elastic_transport:

logging.getLogger('elastic_transport.transport').setLevel(logging.CRITICAL)