2015-11-24 5 views
7

अद्यतन करने के लिए कोई हैंडलर नहीं मिला: यह क्रॉन का कार्य नहीं है। कमांड लाइन से स्क्रिप्ट चलाते समय मुझे वही व्यवहार मिलता है, अगर वास्तव में इसे लोचदार खोज के साथ संसाधित करने और संचार करने का रिकॉर्ड होता है।लॉगर "elasticsearch.trace"


मैं एक क्रॉन जॉब कि जो एक ElasticSearch उदाहरण में कुछ दस्तावेज सूचकांक को pyelasticsearch का उपयोग करता है एक अजगर स्क्रिप्ट चलाता है। स्क्रिप्ट कमांड लाइन से ठीक काम करता है, लेकिन जब क्रॉन के माध्यम से चलाने के लिए, यह इस त्रुटि में परिणाम है:

No handlers could be found for logger "elasticsearch.trace"

जाहिर है वहाँ कुछ लॉगिंग विन्यास मुद्दा यह है कि केवल ऊपर फसलों जब क्रॉन के तहत चलाए जा है, लेकिन मैं स्पष्ट नहीं कर रहा हूँ क्या यह है। कोई अंतर्दृष्टि?

उत्तर

7

मैंने इसे elasticsearch.trace लॉगर के लिए एक हैंडलर को स्पष्ट रूप से कॉन्फ़िगर करके हल किया, जैसा कि मैंने pyelasticsearch repo से examples में देखा था।

pyelasticsearch आयात करने के बाद, तो जैसे एक हैंडलर की स्थापना:

tracer = logging.getLogger('elasticsearch.trace') 
tracer.setLevel(logging.INFO) 
tracer.addHandler(logging.FileHandler('/tmp/es_trace.log')) 

मैं ट्रेस लॉग ध्यान में रखते हुए कोई दिलचस्पी नहीं हूँ, इसलिए मैं पास में हाथ का इस्तेमाल किया Django NullHandler

from django.utils.log import NullHandler 
tracer = logging.getLogger('elasticsearch.trace') 
tracer.setLevel(logging.INFO) 
tracer.addHandler(NullHandler()) 
+0

यह ध्यान देने योग्य है कि, "कोई हैंडलर नहीं मिला" संदेश केवल जानकारी के लिए हैं। वे एक समस्या का संकेत नहीं देते हैं। – Laizer