हमारे पास सिंक और एसिंक ऑपरेशंस वाले जटिल प्रवाह के साथ एक विशाल विरासत कोड है। तो हमें सभी लॉग संदेशों में एक विशिष्ट अनुरोध के लिए एक अनन्य आईडी लॉग करने की आवश्यकता है, जहां संचालन प्रदर्शन विभिन्न धागे में चल रहे हैं और थ्रेड एकाधिक निष्पादन संदर्भ में हैं।सभी निष्पादन संदर्भ में प्ले फ्रेमवर्क लॉग में अनुरोध आईडी लॉग इन करने के लिए कैसे करें
मैंने एमडीसी का उपयोग करने और कस्टम एक्सका प्रेषक का उपयोग करके नीचे दिए गए ब्लॉग में दिए गए समाधान में% X {req_id} का उपयोग करने की कोशिश की, लेकिन यह एकाधिक निष्पादन संदर्भ में काम नहीं करता है, और यह भी काम नहीं करता है भरोसेमंद एकल निष्पादन संदर्भ में, जहां कभी-कभी यह req_id शून्य देता है। (http://yanns.github.io/blog/2014/05/04/slf4j-mapped-diagnostic-context-mdc-with-play-framework/)
जटिल और विशाल कोड आधार के कारण प्रत्येक फ़ंक्शन कॉल में अनुरोध आईडी पास करना संभव नहीं है। क्या कोई तरीका है कि हम इसे कम से कम परिवर्तन के साथ प्राप्त कर सकते हैं? हमें लॉग फ्रेमवर्क द्वारा जेनरेट किए गए लॉग में उस अनुरोध आईडी की भी आवश्यकता है।
लेकिन onRequest() Play में सभी निष्पादन संदर्भ में उपलब्ध नहीं है। मेरी समझ के अनुसार, क्या मैं सही हूँ? – user3828976
'onRequest()' अनुरोध केवल तभी उपलब्ध होता है जब अनुरोध किया जाता है। इसी तरह अन्य सभी संदर्भों में आपको 'TraceContext' बनाना और समाप्त करना होगा। – hrushikesh
हमने इसे एकल निष्पादन संदर्भ में ले जाकर हल किया। – user3828976