2010-03-22 12 views
22

मुझे एक प्रोजेक्ट मिला है जहां मैं अपने वेब सर्वर के लिए ट्विस्ट का उपयोग कर रहा हूं। जब अपवाद होते हैं (जैसे नेटवर्क त्रुटियां), यह कंसोल पर प्रिंट कर रहा है।ट्विस्टेड पाइथन लॉगिंग कैसे करें?

मुझे पहले से ही पाइथन के अंतर्निर्मित लॉग मॉड्यूल के माध्यम से लॉगिंग मिल चुकी है - क्या इसका उपयोग करने के लिए रिएक्टर को बताने का कोई तरीका है?

इसके लिए सामान्य पैटर्न क्या है?

उत्तर

23

इसे मिला। यह वास्तव में काफी आसान है:

from twisted.python import log 
observer = log.PythonLoggingObserver(loggerName='logname') 
observer.start() 

तुम बस एक ही लकड़हारा नाम जो आपने logging.getLogger में उपयोग कर रहे हैं() को loggerName निर्धारित किया है।

+2

ध्यान दें कि आपको उसी लॉगरनाम का उपयोग करने की आवश्यकता नहीं है। एक अलग का उपयोग करने से यह पता लगाने में मदद मिल सकती है कि लॉग संदेश कहां से आ रहे हैं और आपके आवेदन के विभिन्न हिस्सों में विभिन्न लॉगर्स का उपयोग करने के बराबर है। –

+0

यह एक अच्छा विचार है। यह भी मदद करता है कि मैं लॉग संदेश प्रारूप में धागा नाम शामिल करता हूं। यह पता लगाने में मदद करता है कि लॉग कहां से आ रहे हैं। – Dave

+1

बस एफवाईआई पाइथन लॉगिंग मॉड्यूल ब्लॉक और मोड़ सकता है इसकी उम्मीद नहीं है। पाइथन में ग्राहक हैंडलर लिखना बेहतर तरीका है, जो कॉल घटनाओं को मोड़ने के लिए भेजता है। इस तरह आप एक –

0

आप twisted.python.log का उपयोग कर सकते हैं। उदाहरण के लिए:

from twisted.python import log 
log.msg('Hello, world.') 
+1

यह काम करता है, लेकिन केवल आपके स्वयं के लॉग संदेशों के लिए, मुड़कर और उसके मॉड्यूल द्वारा उत्पन्न नहीं। – fiorix

संबंधित मुद्दे