दिलचस्प पोस्ट
रेलवे के बीच ActiveRecord तिथि गेटवे.sandbox.push.apple.com से कनेक्ट करते समय "त्रुटि सत्यापित करें: num = 20" मैं एक लोकल वेरिएबल को एक स्क्रिप्ट ब्लॉक में कैसे चला सकता हूँ जिसे आप़ॉक-कमांड के साथ दूरस्थ मशीन पर निष्पादित किया जा सकता है? बाइनरी कॉलेशन का क्या प्रभाव पड़ता है? रिच टेक्स्टबॉक्स स्ट्रिंग के विभिन्न भागों का रंग HtmlAgilityPack – क्या <form> किसी कारण से खुद को बंद कर देता है? सी # में स्ट्रिंग के सामने @ क्या है? PHP सरणी को जावास्क्रिप्ट में कनवर्ट करें क्या आप किसी फ़ंक्शन को PHP सरणी में संग्रहीत कर सकते हैं? रेल की तरफ रूबी में स्ट्रिंग संख्या है या नहीं अमेज़ॅन एपीआई गेटवे से एडब्ल्यूएस लैम्ब्डा के लिए एक क्वेरी स्ट्रिंग या मार्ग पैरामीटर कैसे पास करें IE में "सीमा-त्रिज्या" के लिए सहायता कैसे आर में एक कुंजीपटल के लिए प्रतीक्षा करने के लिए? TempData रख () बनाम पीक () आउटपुट को स्थान पर पुनर्निर्देशित करने के लिए मैं sudo का उपयोग कैसे करूं, मुझे लिखने की अनुमति नहीं है?

एंड्रॉइड लॉग। V (), लॉग डी (), लॉग.आई (), लॉग। W (), लॉग.ई () – प्रत्येक का उपयोग कब किया जाता है?

विभिन्न LogCat विधियां इस प्रकार हैं:

 Log.v(); // Verbose Log.d(); // Debug Log.i(); // Info Log.w(); // Warning Log.e(); // Error 

प्रत्येक प्रकार के लॉगिंग का उपयोग करने के लिए उपयुक्त परिस्थितियां क्या हैं? मुझे पता है कि शायद यह थोड़ा सा शब्दार्थ है और शायद यह वास्तव में कोई फर्क नहीं पड़ता, लेकिन एंड्रॉइड स्टूडियो और एक्लिप्स में LogCat फ़िल्टरिंग के लिए, यह जानना अच्छा होगा कि मैं उचित समय पर उचित तरीकों का उपयोग कर रहा हूं।

वेब के समाधान से एकत्रित समाधान "एंड्रॉइड लॉग। V (), लॉग डी (), लॉग.आई (), लॉग। W (), लॉग.ई () – प्रत्येक का उपयोग कब किया जाता है?"

रिवर्स ऑर्डर में चलें:

  • Log.e : यह तब होता है जब बुरे सामान होते हैं। ऐसी स्थिति में इस टैग का प्रयोग करें जैसे कि कैच स्टेटमेंट में। आप जानते हैं कि एक त्रुटि हुई है और इसलिए आप एक त्रुटि लॉग कर रहे हैं।

  • लॉग। W : इसका प्रयोग करें जब आपको संदेह होता है कि कुछ छायादार हो रहा है। आप पूरी तरह से त्रुटि मोड पर पूरी तरह से नहीं हो सकते हैं, लेकिन शायद आप कुछ अप्रत्याशित व्यवहार से पुनर्प्राप्त करें। असल में, इसका उपयोग उन सामानों को लॉग करने के लिए करें जिन्हें आप होने की उम्मीद नहीं की थी लेकिन जरूरी नहीं कि कोई त्रुटि है तरह की तरह "अरे, यह हुआ, और यह अजीब है, हमें इसे देखना चाहिए।"

  • Log.i : लॉग इन करने के लिए उपयोगी जानकारी पोस्ट करने के लिए इसका इस्तेमाल करें। उदाहरण के लिए: आपने सफलतापूर्वक एक सर्वर से कनेक्ट किया है मूल रूप से इसका उपयोग सफलता की रिपोर्ट करने के लिए करें

  • लॉग डी । डीबगिंग प्रयोजनों के लिए इसका प्रयोग करें। यदि आप संदेशों के एक समूह को मुद्रित करना चाहते हैं, तो आप अपने प्रोग्राम के सटीक प्रवाह को लॉग कर सकते हैं, इसका उपयोग करें यदि आप चर मानों का लॉग रखना चाहते हैं, तो इसका उपयोग करें

  • लॉग। V : इसका इस्तेमाल जब आप अपने लॉगिंग के साथ पूरी तरह से पागल होना चाहते हैं अगर किसी कारण से आपने अपने ऐप के किसी खास हिस्से में हर चीज को लॉग करने का फैसला किया है, तो लॉग। V टैग का उपयोग करें।

और एक बोनस के रूप में …

  • लॉग। Wtf : इसका उपयोग तब होता है जब चीजें पूरी तरह से हो जाती हैं, बुरी तरह, पवित्र-बकवास गलत। आप उन अवरोधों को जानते हैं जहां आप त्रुटियों को पकड़ रहे हैं जिन्हें आपको कभी भी नहीं मिलना चाहिए … हाँ, अगर आप लॉग इन करना चाहते हैं तो लॉग। Wtf

विभिन्न तरीकों प्राथमिकता के संकेत हैं जैसा कि आपने उन्हें सूचीबद्ध किया है, वे कम से कम सबसे महत्वपूर्ण से जा रहे हैं मुझे लगता है कि आप अपने कोड में लॉग को डीबग करने के लिए विशेष रूप से मानचित्र कैसे करते हैं, उस घटक या ऐप पर निर्भर करते हैं जो आप पर काम कर रहे हैं, साथ ही साथ एंड्रॉइड उन्हें विभिन्न बिल्ड स्वादों (ईंग, यूज़र डेबग और यूजर) के साथ कैसे व्यवहार करता है। मैंने एंड्रॉइड में मूल डिमंस में एक उचित काम किया है, और यह मैं इसे कैसे करता हूं। यह सीधे आपके ऐप पर लागू नहीं हो सकता है, लेकिन कुछ आम जमीन हो सकती है यदि मेरा स्पष्टीकरण अस्पष्ट लगता है, तो इसका कारण यह है कि इनमें से कुछ विज्ञान की तुलना में एक कला से अधिक है। मेरा बुनियादी नियम जितना संभव हो उतना कुशल होना चाहिए, यह सुनिश्चित करना कि आप सिस्टम के प्रदर्शन को न मारने के साथ अपने घटक को उचित रूप से डिबग कर सकते हैं, और हमेशा त्रुटियों की जांच करें और उन्हें लॉग इन करें

वी – अलग-अलग अंतराल पर राज्य के प्रिंटआउट्स, या किसी भी घटनाओं पर जो मेरे घटक प्रक्रियाओं को उत्पन्न करते हैं। मैसर्स / घटनाओं के पेलोड के संभवतः बहुत विस्तृत प्रिंटआउट्स जो कि मेरा घटक प्राप्त करता है या भेजता है

डी – मेरे घटक के भीतर आने वाली छोटी घटनाओं का विवरण, साथ ही संदेश / घटनाओं का पेलोड जो मेरे घटक को प्राप्त या भेजता है।

मैं – किसी भी संदेश / घटनाओं का शीर्षक जो कि मेरा घटक प्राप्त करता है या भेजता है, साथ ही पेलोड के किसी भी महत्वपूर्ण टुकड़े जो मेरे घटक के संचालन के लिए महत्वपूर्ण हैं I

डब्ल्यू – जो भी ऐसा होता है वह असामान्य या संदिग्ध होता है, लेकिन जरूरी नहीं कि कोई त्रुटि

ई – गलतियां, जिसका अर्थ ये है कि चीजें जो काम करना चाहिए के रूप में होने चाहिए नहीं हैं।

सबसे बड़ी गलती है कि मैं लोगों को देखता हूं कि वे वी, डी, और मैं जैसी चीजों का अधिक इस्तेमाल करते हैं, लेकिन कभी भी डब्ल्यू या ई का उपयोग नहीं करते हैं। यदि कोई त्रुटि है, परिभाषा के अनुसार, होने वाली नहीं है, या बहुत कम ही होनी चाहिए, तो यह अत्यंत है जब कोई संदेश तब होता है जब आप लॉग इन करने के लिए सस्ते होते हैं दूसरी ओर, यदि हर बार कोई एक कुंजी दबाता है जो आप Log.i () करते हैं, तो आप साझा लॉगिंग संसाधनों का दुरुपयोग कर रहे हैं। बेशक, सामान्य ज्ञान का प्रयोग करें और अपने नियंत्रण से बाहर की चीजों के लिए त्रुटि लॉग से सावधान रहें (जैसे नेटवर्क त्रुटियां), या तंग छोरों में निहित हैं

शायद बुरा

 Log.i("I am here"); 

अच्छा

 Log.e("I shouldn't be here"); 

इस सबके साथ ध्यान में रखते हुए, आपके कोड के करीब "उत्पादन तैयार" हो जाता है, जितना अधिक आप अपने कोड के लिए बेस लॉगिंग स्तर को सीमित कर सकते हैं (आपको अल्फा में वी, डी में बीटा, उत्पादन में, या संभवतः उत्पादन में भी डब्ल्यू )। आपको कुछ साधारण उपयोग के मामलों के माध्यम से चलना चाहिए और यह सुनिश्चित करने के लिए लॉग देख सकते हैं कि आप अभी भी अधिकतर समझ सकते हैं कि क्या हो रहा है क्योंकि आप अधिक प्रतिबंधात्मक फ़िल्टरिंग लागू करते हैं यदि आप नीचे दिए गए फ़िल्टर के साथ चलाते हैं, तो आप अभी भी यह बता सकेंगे कि आपका ऐप क्या कर रहा है, लेकिन संभवत: सभी विवरण नहीं मिले।

 logcat -v threadtime MyApp:I *:S 

स्रोत कोड कुछ बुनियादी मार्गदर्शन प्रदान करता है:

वर्बोज़ीटी के संदर्भ में आदेश, कम से कम सबसे ज्यादा, त्रुटि, वॉर्न, जानकारी, डेब्यूग, वर्बोस है। विकास के दौरान वर्बोस को एक आवेदन में संकलित नहीं किया जाना चाहिए। डीबग लॉग को संकलित किया जाता है लेकिन रनटाइम पर छीन लिया जाता है। त्रुटि, चेतावनी और जानकारी लॉग हमेशा रखा जाता है

अधिक विस्तार के लिए, कर्टिस का उत्तर मृत है मैं बस जोड़ूंगा: INFO या इसके बाद के संस्करण में कोई भी निजी / व्यक्तिगत रूप से पहचान योग्य जानकारी दर्ज नहीं करें (चेतावनी / त्रुटि) अन्यथा बग की रिपोर्ट या लॉगिंग शामिल हैं, जो कुछ भी प्रदूषित हो सकता है।

मुझे लगता है कि उन विभिन्न प्रकार के लॉगिंग का मुद्दा यह है कि यदि आप चाहते हैं कि आपका ऐप मूल रूप से स्वयं को अपने लॉग फ़िल्टर करता है तो वर्बोस आपके ऐप में बिल्कुल महत्व के सबूत लॉग हो सकता है, फिर डीबग स्तर वर्बोज लॉग्स का एक सबसेट लॉग करेगा, और उसके बाद इन्फो लेवल डीबग लॉग्स का एक सबसेट लॉग करेगा। जब आप त्रुटि लॉग्स में उतरते हैं, तो आप किसी भी प्रकार की त्रुटियों को लॉग करना चाहते हैं जो हो सकता है। जब भी आपके ऐप में कुछ वास्तव में प्रशंसक को टक्कर मारते हैं, तो घातक नामक एक डीबग स्तर भी होता है।

सामान्य तौर पर, आप सही हैं, यह मूल रूप से मनमाना है, और यह परिभाषित करने के लिए आपके ऊपर निर्भर है कि क्या डिबग लॉग बनाम सूचनात्मक, बनाम और त्रुटि आदि आदि शामिल हैं।

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

  • वर्बोस – सभी लॉग संदेश (डिफ़ॉल्ट) दिखाएं
  • डीबग करें – डिबग लॉग संदेश दिखाएं जो केवल विकास के दौरान उपयोगी होते हैं, साथ ही साथ इस सूची में संदेश स्तर कम होता है।
  • जानकारी – नियमित उपयोग के लिए अपेक्षित लॉग संदेश दिखाएं, साथ ही साथ इस सूची में संदेश स्तर कम होता है।
  • चेतावनीसंभवतया समस्याएं दिखाएं जो अभी तक त्रुटियां नहीं हैं, साथ ही साथ इस सूची में कम संदेश स्तर।
  • त्रुटि – ऐसी त्रुटियां दिखाएं जिनके कारण त्रुटि हुई है, साथ ही साथ इस सूची में संदेश स्तर कम है।
  • आश्वस्त – उन डेवलपरों को दिखाना चाहिए जो डेवलपर को कभी नहीं होने चाहिए।