GoLang में MDC लॉगिंग
Java की MDC लॉगिंग थ्रेड लोकल स्टोरेज पर निर्भर करती है, जो GoLang में उपलब्ध नहीं है। हालाँकि, स्टैक के माध्यम से एक कॉन्टेक्स्ट को थ्रेड करके एक समान कार्यक्षमता प्राप्त की जा सकती है।
जावा एमडीसी थ्रेड लोकल स्टोरेज पर निर्भर करता है, जो कि गो के पास नहीं है। निकटतम चीज़ आपके स्टैक के माध्यम से एक संदर्भ को पिरोना है, जो गो लाइब्रेरीज़ में एक आम अभ्यास बनता जा रहा है।
इसे लागू करने का एक तरीका एक मिडलवेयर पैकेज के माध्यम से है जो वेब अनुरोध के संदर्भ में एक अनुरोध आईडी जोड़ता है . इस आईडी को फिर से पुनर्प्राप्त किया जा सकता है और लॉगिंग उद्देश्यों के लिए पूरे स्टैक में उपयोग किया जा सकता है। ), "requestId", ID))
अनुरोध आईडी को फिर से प्राप्त किया जा सकता है का उपयोग करते हुए:
req = req.WithContext(context.WithValue(req.Context(), "requestId", ID))
इस मान का उपयोग कस्टम लॉगर फ़ंक्शन में किया जा सकता है:
ctx.Value("requestId")
यह दृष्टिकोण सभी सर्वर लॉग में अद्वितीय आईडी जोड़कर समवर्ती अनुरोधों का आसान पता लगाने की अनुमति देता है। अन्य संभावित कार्यान्वयन हैं, लेकिन यह GoLang में एमडीसी जैसी लॉगिंग प्राप्त करने का एक सीधा तरीका प्रदान करता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3