लॉग जमा करने के फ़ायदे | मूल, AI द्वारा अनुवादित
लॉग्स जमा करने के लाभ
जब मैं पहले एक बैंक के लिए ठेकेदार के रूप में काम करता था, तो हम माइक्रोसेवाओं को चलाने के लिए एक मल्टी-क्लाउड एप्लिकेशन प्लेटफॉर्म का उपयोग करते थे। उस समय, मैंने कंपनी में काम करते हुए लॉग्स जमा करना शुरू कर दिया।
कई साल बीत चुके हैं, और मैं अब भी मानता हूं कि यह मेरे काम करने या सॉफ्टवेयर इंजीनियरिंग करने में मदद करने के सबसे अच्छे तरीकों में से एक है। जैसे-जैसे समय बीतता गया, मेरी लॉग्स डायरेक्टरी में सैकड़ों लॉग फाइलें हो गईं।
मेरे पास इनके लिए कोई विशेष सबडायरेक्टरीज या औपचारिक लॉग फाइल नाम नहीं हैं। कभी-कभी, मैं बस उस JIRA टास्क के नाम को अपनी लॉग फाइल के नाम का प्रीफ़िक्स या उस फीचर का नाम देता हूं। और फिर मैं सफिक्स में एक नंबर जोड़ देता हूं। यह mutual-fund-1.log, mutual-fund-2.log आदि जैसा होता है। इसका मतलब है कि म्यूचुअल फंड माइक्रोसेवा में, जब मैं उस माइक्रोसेवा को चलाता हूं तो मेरे पास वह लॉग होता है।
कभी-कभी, जब मैं कई क्षेत्रों में सेवा देने वाले प्रोजेक्ट्स पर काम करता हूं, तो मैं उस देश को सफिक्स के रूप में जोड़ देता हूं, जैसे mutual-fund-cn-1.log, mutual-fund-sg-1.log। लॉग्स के फाइल नाम कुछ हद तक अनौपचारिक होते हैं। क्योंकि उस समय, मुझे त्रुटि स्टैक या आसपास की फ़ंक्शन कॉलिंग पर ध्यान केंद्रित करना होता था।
कार्यक्रमों के लॉग मायने रखते हैं। हर कोई जानता है। हालांकि, मैं लॉग्स को सिर्फ कंसोल में देखने और उन्हें जाने देने के बजाय जमा करने के महत्व को अधिक बताना चाहता हूं। जब प्रोजेक्ट चल रहा होगा तो आपको इसकी अधिक सुविधा मिलेगी। आपके पास पिछले लॉग्स को खोजने के लिए अधिक समय होगा। आपको यह जानने की आवश्यकता हो सकती है कि क्या पहले इसी तरह की डेटाबेस स्टोर की गई प्रक्रिया कॉलिंग हुई है। आपको यह जानने की आवश्यकता हो सकती है कि क्या पहले वही त्रुटि हुई है। आपको यह याद करने की आवश्यकता हो सकती है कि पिछली बार इस समस्या को कैसे ठीक किया गया था।
एक बड़े प्रोजेक्ट या दर्जनों माइक्रोसेवाओं में ढेर सारे विवरण होते हैं। और त्रुटियां, अपवाद या समस्याएं बार-बार हो रही होती हैं। लॉग एक कार्यक्रम के चलने वाले दस्तावेज़ की तरह है। और वे कार्यक्रम द्वारा स्वचालित रूप से बिना किसी मानवीय टाइपिंग के उत्पन्न होते हैं। और डेवलपर्स के लिए, ये लॉग पठनीय होते हैं। तो जब कोई नया कार्य शुरू करते हैं या एक नया बग ठीक करते हैं, तो आपके पास इस नए बग को ठीक करने के लिए सैकड़ों लॉग होते हैं। आप अकेले नहीं होते हैं।
हम उन्हें क्यों जमा करते हैं? क्योंकि चीजें या ज्ञान आसानी से भुला दिए जाते हैं।
जब कागज़ का आविष्कार हुआ तो मानव सभ्यता में प्रगति हुई। और जब कंप्यूटर्स का आविष्कार हुआ, तो मानव सभ्यता का एक और स्तर था। कागज़ पर नोट्स रखना ठीक वैसे ही है जैसे कंप्यूटर्स में लॉग्स जमा करना।
न केवल मनुष्यों के लिए, बल्कि AI चैटबॉट्स, LLM टूलिंग के लिए, ये लॉग अधिक से अधिक महत्वपूर्ण होते जा रहे हैं। GreptimeDB, 2022 में स्थापित अवलोकनयोग्यता डेटा (मैट्रिक्स, लॉग्स और ट्रेसेस) के एकीकृत संग्रह और विश्लेषण के लिए एक डेटाबेस कोई संयोग नहीं है।
मैंने पहले ऐसा क्यों नहीं किया? बड़े बैंकों के लिए एक ठेकेदार के रूप में काम करने के बाद, मुझे अधिक सहयोग करने और बड़े प्रोजेक्ट्स पर काम करने की आवश्यकता थी। उससे पहले, स्टार्टअप या मेरे स्टार्टअप अवधि में, मैं ज्यादातर समय अकेले काम करता था। जब मैं पहले लीनक्लाउड में काम करता था, तो मैंने आधे समय तक IM ऐप लीनचैट पर काम किया।
और जब मैं अधिक औपचारिक कॉर्पोरेट दुनिया में गया, तो परियोजनाओं का विकास मेरे व्यक्तिगत प्रोजेक्ट या स्टार्टअप प्रोजेक्ट से अलग था। उनके पास SIT, UAT परीक्षण वातावरण थे। और उत्पादन वातावरण अक्सर कुछ छोटे टीम के साथियों के लिए ही खुला होता है। उनसे लॉग प्राप्त करना और समस्याओं को ठीक करना लंबा और कुछ हद तक थकाऊ हो जाता है। और एक प्रोजेक्ट चलाने में समय लगता है, और जेन्किन्स पाइपलाइन को अक्सर चलने में आधा घंटा लगता है।
इसलिए मैं कार्यक्रम को मक्खी की तरह चला या परीक्षण नहीं कर सकता। मैं अपने पर्सनल कंप्यूटर पर केवल एक कमांड टाइप करके और चलाने के लिए कोड को सर्वर पर अपलोड करके डिप्लॉयमेंट नहीं कर सकता।
तो यह किसी तरह मुझे कार्यों को संभालने के लिए अधिक संदर्भ रखने के लिए लॉग जमा करने देता है। हम पहली बार में ही समस्याओं को बेहतर ढंग से ठीक करते हैं। हम अपने सुधार को कुछ ही बार में बेहतर ढंग से सत्यापित करते हैं। हम क्लाउड या कंपनी के सर्वर में चल रहे कार्यक्रम के लॉग आसानी से प्राप्त नहीं कर सकते हैं, इसलिए हम इसे कॉपी करके स्थानीय लैपटॉप पर सहेज कर विश्लेषण करना बेहतर समझते हैं।
और अब, मेरे व्यक्तिगत प्रोजेक्ट्स के लिए, मैं भी लॉग जमा करूंगा। यह एक आदत बन गई है। कुछ वर्षों तक बड़ी कंपनियों में काम करने के बाद, मुझमें किसी तरह अपने प्रोजेक्ट्स को बड़ा और लंबा बनाने के लिए अधिक धैर्य या रणनीति आ गई है। इसलिए मुझे पता है कि समय के साथ मुझे इन लॉग्स की आवश्यकता होगी।
कोई कह सकता है कि आपको बस सुरुचिपूर्ण कोड और एक कार्यशील प्रोजेक्ट की आवश्यकता है। आपको लॉग या त्रुटि स्टैक ट्रेसेस जमा करने की आवश्यकता नहीं है। यह ठीक है। जब हमारे पास कोई बग या नया फीचर होता है, तो हम वर्तमान लॉग प्राप्त करने के लिए प्रोग्राम चला सकते हैं। हमें विकास प्रक्रिया के लॉग की आवश्यकता नहीं होती है। वे वैज्ञानिक प्रयोगों के विस्तृत रिकॉर्ड की तरह होते हैं। पहली नजर में, यह ठीक लगता है। लेकिन लंबे समय में, यदि एक दिन आप उस पर फिर से काम करना चाहते हैं, या आप इसे साझा करना चाहते हैं, या दूसरों को इसे संभालने देना चाहते हैं, तो यह अच्छा नहीं हो सकता है।
मुझे लगता है कि यहां अच्छे अवसर हो सकते हैं। कंपनियों में, हमें हर डेवलपर को अपने संचित लॉग साझा करने के लिए क्यों प्रोत्साहित नहीं करना चाहिए? ओपन सोर्स प्रोजेक्ट्स में भी ऐसा होना चाहिए। हमें दूसरों के लॉग आकर्षक नहीं लगते क्योंकि हम उन्हें नहीं जानते। लॉग सहेजते समय हम संदर्भ खो देते हैं। और उसके अंदर, असंबंधित या तुच्छ संदेशों का ढेर लगता है।
लेकिन लॉग जमा करने का प्रयास तुच्छ है। हर बार जब हम कुछ लॉग देखते हैं, खासकर उन त्रुटि लॉग को, तो यह बस कॉपी और पेस्ट करना होता है। और स्वचालित तरीके से कैसे किया जाए? हर बार जब हम कोई प्रोजेक्ट चलाते हैं, जैसे कि स्प्रिंग बूट प्रोजेक्ट्स, तो लॉग को एक डायरेक्टरी में रिकॉर्ड करना एक अच्छा विचार है।
दुनिया तेजी से डिजिटल होती जा रही है, इसलिए डिजिटल कार्यक्रमों के लॉग जमा करना बिल्कुल वैसे ही है जैसे भौतिक दुनिया में किताबें जमा करना।