पायथन में मल्टीप्रोसेसिंग के साथ लॉगिंग: एक मजबूत समाधान
पायथन के मल्टीप्रोसेसिंग मॉड्यूल का उपयोग करते समय, प्रक्रिया की कमी के कारण लॉगिंग अधिक जटिल हो जाती है- मल्टीप्रोसेसिंग-अवेयर लॉगर के लिए साझा लॉक, संभावित रूप से sys.stderr आउटपुट को खराब कर देता है।
इस चुनौती को संबोधित करने के लिए, एक वैकल्पिक दृष्टिकोण एक कस्टम लॉग हैंडलर बनाना है जो आउटपुट को एक पाइप के माध्यम से मूल प्रक्रिया में निर्देशित करता है। यह विधि समवर्तीता को संभालने और त्रुटियों से उबरने के लिए कतार पर निर्भर करती है। प्रदान किया गया कार्यान्वयन उत्पादन वातावरण में स्थिर लॉगिंग सुनिश्चित करता है। यह माता-पिता और बच्चे की प्रक्रियाओं के बीच एक पाइप स्थापित करता है, जो एक केंद्रीकृत लॉग भंडारण की अनुमति देता है। चाइल्ड प्रक्रियाओं से और उन्हें मूल प्रक्रिया में RotatingFileHandler पर अग्रेषित करें। यह सुनिश्चित करता है कि लॉग संदेशों को सही ढंग से स्वरूपित किया गया है और इच्छित गंतव्य पर लिखा गया है।
लॉग रिकॉर्ड भेजने के लिए, भेजें विधि का उपयोग किया जाता है, जबकि प्राप्त थ्रेड लगातार नए रिकॉर्ड के लिए पाइप की निगरानी करता है और उन्हें _हैंडलर को अग्रेषित करता है।
अचयनित वस्तुओं के कारण समस्या पैदा करने के जोखिम को कम करने के लिए, हैंडलर पाइप पर भेजने से पहले लॉग रिकॉर्ड में exc_info और args मानों को स्ट्रिंग करता है।_format_record कॉल को लपेटने के लिए एमिट विधि को ओवरराइड किया जाता है यह सुनिश्चित करने के लिए कि किसी भी विफलता को उचित रूप से नियंत्रित किया जाता है, एक प्रयास-छोड़कर ब्लॉक में।
यह कस्टम लॉगिंग हैंडलर मल्टीप्रोसेसिंग अनुप्रयोगों में लॉग प्रबंधित करने के लिए एक विश्वसनीय समाधान प्रदान करता है, केंद्रीकृत लॉग स्टोरेज और त्रुटि पुनर्प्राप्ति क्षमताओं की पेशकश करता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3