विभिन्न विधियाँ प्राथमिकता के संकेत हैं। जैसा कि आपने उन्हें सूचीबद्ध किया है, वे कम से कम सबसे महत्वपूर्ण हैं। मुझे लगता है कि आप अपने कोड में डिबग लॉग के लिए विशेष रूप से उन्हें कैसे मैप करते हैं यह उस घटक या ऐप पर निर्भर करता है जिस पर आप काम कर रहे हैं, साथ ही साथ एंड्रॉइड उन्हें विभिन्न बिल्ड फ़्लेवर (eng, userdebug, और उपयोगकर्ता) पर कैसे व्यवहार करता है। मैंने एंड्रॉइड में देशी डेमॉन में उचित मात्रा में काम किया है, और यह है कि मैं इसे कैसे करता हूं। यह सीधे आपके ऐप पर लागू नहीं हो सकता है, लेकिन कुछ सामान्य आधार हो सकते हैं। अगर मेरी व्याख्या अस्पष्ट लगती है, तो ऐसा इसलिए है क्योंकि इसमें से कुछ एक विज्ञान की तुलना में अधिक कला है। मेरा मूल नियम जितना संभव हो उतना कुशल होना है, सुनिश्चित करें कि आप सिस्टम के प्रदर्शन को मारे बिना अपने घटक को यथोचित डिबग कर सकते हैं, और हमेशा त्रुटियों की जांच कर सकते हैं और उन्हें लॉग इन कर सकते हैं।
V - राज्य के प्रिंटआउट विभिन्न अंतरालों पर, या मेरे घटक प्रक्रियाओं में होने वाली किसी भी घटना पर। संभवतः संदेश / घटनाओं के पेलोड के बहुत विस्तृत प्रिंटआउट जो मेरे घटक को प्राप्त होते हैं या भेजते हैं।
डी - मेरे घटक के साथ घटित होने वाली छोटी घटनाओं का विवरण, साथ ही संदेश / घटनाओं का पेलोड जो मेरा घटक प्राप्त करता है या भेजता है।
मैं - किसी भी संदेश / घटनाओं का शीर्षक जो मेरे घटक को प्राप्त या भेजता है, साथ ही पेलोड के किसी भी महत्वपूर्ण टुकड़े जो मेरे घटक के संचालन के लिए महत्वपूर्ण हैं।
डब्ल्यू - कुछ भी जो असामान्य या संदिग्ध है, लेकिन जरूरी नहीं कि वह त्रुटि हो।
ई - त्रुटियां, मतलब चीजें जो तब होनी चाहिए जब चीजें काम नहीं कर रही हैं जैसा कि उन्हें करना चाहिए।
सबसे बड़ी गलती जो मैं लोगों को देखता हूं, वह यह है कि वे V, D, और I जैसी चीजों का अत्यधिक उपयोग करते हैं, लेकिन कभी भी W या E. का उपयोग नहीं करते हैं। यदि कोई त्रुटि है, तो परिभाषा के अनुसार, ऐसा नहीं होना चाहिए, या केवल बहुत कम ही होना चाहिए, फिर यह अत्यंत है सस्ता जब आप एक संदेश लॉग इन होता है। दूसरी ओर, यदि हर बार कोई व्यक्ति किसी कुंजी को दबाता है तो आप Log.i () करते हैं, तो आप साझा लॉगिंग संसाधन का दुरुपयोग कर रहे हैं। बेशक, सामान्य ज्ञान का उपयोग करें और अपने नियंत्रण (जैसे नेटवर्क त्रुटियों) के बाहर की चीजों के लिए त्रुटि लॉग से सावधान रहें, या तंग छोरों में निहित हैं।
शायद बुरा
Log.i("I am here");
अच्छा
Log.e("I shouldn't be here");
यह सब ध्यान में रखते हुए, आपका कोड "उत्पादन के लिए तैयार" हो जाता है, जितना अधिक आप अपने कोड के लिए आधार लॉगिंग स्तर को प्रतिबंधित कर सकते हैं (आपको अल्फा में वी की आवश्यकता है, बीटा में डी की जरूरत है, मैं उत्पादन में, या संभवतः उत्पादन में भी डब्ल्यू। )। आपको कुछ सरल उपयोग मामलों के माध्यम से चलना चाहिए और लॉग को देखने के लिए सुनिश्चित करें कि आप अभी भी ज्यादातर समझ सकते हैं कि क्या हो रहा है क्योंकि आप अधिक प्रतिबंधक फ़िल्टरिंग लागू करते हैं। यदि आप नीचे दिए गए फ़िल्टर के साथ चलते हैं, तो आपको अभी भी यह बताने में सक्षम होना चाहिए कि आपका ऐप क्या कर रहा है, लेकिन शायद सभी विवरण नहीं मिले।
logcat -v threadtime MyApp:I *:S
Verbose
लॉगिंग के लिए है। जब आप हर संभव लॉजिकल ऑपरेशन को आउटपुट करना चाहते हैं तो इसका उपयोग करें।