2016-08-09 5 views
2

Wie kann ich die Protokollierungsstufe für die Elasticsearch-Bibliothek anders als meine eigene Protokollierung festlegen? Um das Problem zu veranschaulichen, beschreibe ich das Modul-Szenario. Ich habe ein Modul lookup.py die elasticsearch wie folgt verwendet:Wie stelle ich die Protokollierungsstufe für die Elasticsearch-Bibliothek anders ein als meine eigene Protokollierung?

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']) 
    . 
    . 
. 

Da ist in meinem Haupt-Datei, die ich tun

import logging 
import lookup.py 

logging.root.setLevel(loglevel(args)) 
get_docs() 
. 
. 
. 

ich viele Debug-Meldungen von innerhalb das Elasticsearch Objekt erhalten. Wie kann ich sie mit einem Code in lookup.py unterdrücken, ohne die Debug-Meldungen in lookup.py selbst zu unterdrücken? Die Elasticsearch Klasse scheint ein logger Objekt zu haben; Ich habe versucht, es auf None zu setzen, aber das änderte nichts.

Antwort

0

Die folgenden zwei Zeilen haben den Trick für mich gemacht, um übermäßige Protokollierung von der ES-Bibliothek zu unterdrücken.

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

Verwandte Themen