Logcat के साथ लॉग देखें

Android Studio में Logcat विंडो की मदद से, ऐप्लिकेशन को डीबग किया जा सकता है रीयल टाइम में आपके डिवाइस के लॉग दिखाना—उदाहरण के लिए, ऐसे मैसेज जिन्हें आपने Log क्लास के साथ आपके ऐप्लिकेशन में जोड़ा गया, मैसेज Android पर चलने वाली सेवाओं या सिस्टम मैसेज की मदद से, जैसे कि कूड़ा फेंकने पर इकट्ठा होता है. जब किसी ऐप्लिकेशन में कोई अपवाद दिखता है, तो Logcat एक मैसेज दिखाता है इससे जुड़ा स्टैक ट्रेस, कोड की लाइन तक ले जाता है.

Logcat विंडो से शुरू करें

अपने ऐप्लिकेशन के लॉग मैसेज देखने के लिए, यह तरीका अपनाएं.

  1. Android Studio में, किसी फ़िज़िकल डिवाइस पर अपना ऐप्लिकेशन बनाएं और चलाएं डिवाइस या एम्युलेटर का इस्तेमाल करें.
  2. देखें > टूल की विंडो > Logcat में मिलेगा.

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

Logcat विंडो का यूज़र इंटरफ़ेस (यूआई)

पहला डायग्राम. Logcat फ़ॉर्मैट लॉग करता है, ताकि काम की जानकारी आसानी से स्कैन की जा सके, देख सकते हैं और विभिन्न प्रकार के लॉग की पहचान कर सकते हैं, जैसे चेतावनियां और गड़बड़ियां ठीक करें.

लॉग पढ़ने का तरीका

हर लॉग में तारीख, टाइमस्टैंप, प्रोसेस और थ्रेड आईडी, टैग, पैकेज का नाम, प्राथमिकता और उससे जुड़े मैसेज की जानकारी शामिल की जाती है. अलग-अलग टैग का एक खास रंग होता है जिससे लॉग के टाइप का पता लगाने में मदद मिलती है. हर लॉग एंट्री की प्राथमिकता FATAL है, ERROR, WARNING, INFO, DEBUG या VERBOSE.

उदाहरण के लिए, नीचे दिए गए लॉग मैसेज की प्राथमिकता DEBUG है और उसका टैग ProfileInstaller:

2022-12-29 04:00:18.823 30249-30321 ProfileInstaller        com.google.samples.apps.sunflower    D  Installing profile for com.google.samples.apps.sunflower

लॉग व्यू को कॉन्फ़िगर करें

स्टैंडर्ड लॉग व्यू, हर लॉग की तारीख, समय की प्रोसेस, और थ्रेड आईडी, टैग, पैकेज का नाम, प्राथमिकता, और उससे जुड़ा मैसेज. डिफ़ॉल्ट रूप से, मैसेज लॉग व्यू में लाइनें रैप नहीं की गई हैं, लेकिन आप सॉफ़्ट रैप सॉफ़्ट रैप का आइकॉन विकल्प क्लिक करें.

कॉम्पैक्ट व्यू पर स्विच किया जा सकता है, जिसमें डिसप्ले की कम जानकारी होती है, क्लिक करके Logcat फ़ॉर्मैट करने के विकल्प कॉन्फ़िगर करें Logcat टूलबार से ली गई सामग्री हटाएं.

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

कलर स्कीम बदलना

कलर स्कीम बदलने के लिए, Android Studio पर जाएं > सेटिंग > एडिटर > कलर स्कीम. अपने लॉग व्यू की कलर स्कीम बदलने के लिए, Android Logcat चुनें. अपने फ़िल्टर की कलर स्कीम बदलने के लिए, Logcat फ़िल्टर.

कॉन्फ़िगरेशन के अतिरिक्त विकल्प

कॉन्फ़िगरेशन के अन्य विकल्पों के लिए, Android Studio पर जाएं > सेटिंग > टूल > Logcat. यहां से, Logcat चुनें साइकल बफ़र का साइज़, नई Logcat विंडो के लिए डिफ़ॉल्ट फ़िल्टर, और यह कि ऑटोकंप्लीट की सुविधा में इतिहास से फ़िल्टर जोड़ना चाहते हैं.

एक से ज़्यादा विंडो में Logcat का इस्तेमाल करें

टैब की मदद से, अलग-अलग डिवाइसों या क्वेरी के बीच आसानी से स्विच किया जा सकता है. आप बना सकते हैं क्लिक करके एक से ज़्यादा Logcat टैब पाएं नया टैब 'नया टैब' का आइकॉन. किसी टैब पर राइट क्लिक करने से, उसका नाम बदला और फिर से व्यवस्थित किया जा सकता है.

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

एक से ज़्यादा लॉगकैट विंडो अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है दूसरी इमेज. Android Studio में Logcat विंडो को बांटें.

Logcat टूलबार से, आप लॉग के आखिर तक स्क्रोल कर सकते हैं या आप किसी विशेष पंक्ति को दृश्यमान बनाए रखने के लिए उस पर क्लिक कर सकते हैं.

Android Studio में, मुख्य वैल्यू वाली खोजें जनरेट की जा सकती हैं. मुख्य क्वेरी फ़ील्ड. यह क्वेरी सिस्टम आपकी क्वेरी के हिसाब से सटीक जानकारी देता है क्वेरी करें और मुख्य वैल्यू के आधार पर लॉग को भी बाहर रखें. जबकि आपके पास ये काम करने का विकल्प है रेगुलर एक्सप्रेशन का इस्तेमाल करते हैं, तो आपको क्वेरी के लिए उन पर निर्भर रहने की ज़रूरत नहीं है. देखने के लिए के सुझाव पाने के लिए, क्वेरी फ़ील्ड में Ctrl + Space दबाएं.

क्वेरी फ़ील्ड में सुझावों की सूची अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है तीसरी इमेज. इनकी सूची देखने के लिए, क्वेरी फ़ील्ड में Ctrl + Space दबाएं सुझाई गई क्वेरी.

अपनी क्वेरी में इस्तेमाल की जा सकने वाली कुंजियों के कुछ उदाहरण यहां दिए गए हैं:

  • tag: लॉग एंट्री के tag फ़ील्ड से मेल खाता है.
  • package: लॉग करने वाले ऐप्लिकेशन के पैकेज के नाम से मेल खाता है.
  • process: लॉग करने वाले ऐप्लिकेशन के प्रोसेस नाम से मेल खाता है.
  • message: लॉग एंट्री के मैसेज वाले हिस्से से मेल खाता है.
  • level: तय या उससे ज़्यादा गंभीर लॉग लेवल से मेल खाता है. उदाहरण के लिए, DEBUG.
  • age: एंट्री टाइमस्टैंप हाल ही का होने पर मैच होता है. वैल्यू इस तरह दी गई हैं: संख्या के बाद समय की इकाई बताने वाला अक्षर: सेकंड के लिए s, सेकंड के लिए m, मिनट, घंटे के लिए h और दिन के लिए d. उदाहरण के लिए, सिर्फ़ age: 5m फ़िल्टर पिछले पांच मिनट में लॉग किए गए मैसेज.

निगेशन और रेगुलर एक्सप्रेशन

ये फ़ील्ड, निगेशन और रेगुलर एक्सप्रेशन मैचिंग की सुविधा देते हैं: tag, package, message, और line.

फ़ील्ड के नाम में - पहले से जोड़कर निगेशन दिखाया जाता है. उदाहरण के लिए, -tag:MyTag उन लॉग एंट्री का मिलान करता है जिनकी tag में स्ट्रिंग नहीं है MyTag.

रेगुलर एक्सप्रेशन मिलान को फ़ील्ड के नाम में ~ जोड़कर दिखाया जाता है. उदाहरण के लिए, tag~:My.*Tag.

निगेशन और रेगुलर एक्सप्रेशन मॉडिफ़ायर, दोनों को मिलाया जा सकता है. उदाहरण के लिए, -tag~:My.*Tag.

लॉजिकल ऑपरेटर और ब्रैकेट

क्वेरी की भाषा उन AND और OR ऑपरेटर के साथ काम करती है जिन्हें & और | और कोष्ठक. उदाहरण के लिए:

(tag:foo | level:ERROR) & package:mine

ध्यान दें कि ऑपरेटर की प्राथमिकता की सामान्य प्राथमिकता तय की गई है. इसलिए:

tag:foo | level:ERROR & package:mine

इसका आकलन इस तरह किया जाता है:

tag:foo | (level:ERROR & package:mine)

इंप्लिसिट लॉजिकल ऑपरेटर

अगर लॉजिकल ऑपरेटर लागू नहीं होते हैं, तो क्वेरी लैंग्वेज अपने-आप नतीजे के तौर पर, एक ही कुंजी के ज़रिए कई नेगेटिव key-value फ़िल्टर शब्दों का आकलन करता है AND के साथ OR और बाकी सब कुछ पाएं.

उदाहरण के लिए:

tag:foo tag:bar package:myapp

इसका आकलन इस तरह किया जाता है:

(tag:foo | tag:bar) & package:myapp

लेकिन:

tag:foo -tag:bar package:myapp

इसका आकलन इस तरह किया जाता है:

tag:foo & -tag:bar & package:myapp

अगर कई क्वेरी शब्दों को लॉजिकल ऑपरेटर के बिना, खाली सफ़ेद जगह से अलग किया गया है, तो उन्हें कम प्राथमिकता वाला AND माना जाता है. उदाहरण के लिए, शब्द foo bar tag:bar1 | tag:bar2 इसके बराबर है 'foo bar' & (tag: bar1 | tag: bar2).

खास क्वेरी

package:mine

पैकेज कुंजी एक विशेष मान mine का समर्थन करती है. यह विशेष मान किसी से भी मेल खाता है खुले प्रोजेक्ट में शामिल पैकेज नाम.

level

level क्वेरी, Logcat मैसेज के लॉग लेवल से मैच करती है, जहां लॉग एंट्री लेवल, क्वेरी लेवल से ज़्यादा या उसके बराबर है.

उदाहरण के लिए, level:INFO, INFO के लॉग लेवल वाली किसी भी लॉग एंट्री से मैच करता है, WARN, ERROR या ASSERT. यह लेवल केस-सेंसिटिव (बड़े और छोटे अक्षरों में अंतर) नहीं होता है. मान्य लेवल ये हैं: VERBOSE, DEBUG, INFO, WARN, ERROR, और ASSERT.

age

age क्वेरी, टाइमस्टैंप के आधार पर एंट्री से मेल खाती है. साथ ही, इसे इस फ़ॉर्मैट में रखा जाता है age:<number><unit>, जहां

  • <number> एक पूर्णांक है
  • <unit>, s, m, h, और d (सेकंड, मिनट, घंटे, और दिन) में से एक है.

नीचे दी गई सूची में, age क्वेरी उन लॉग मैसेज से मेल खाती है जिनमें वैल्यू के हिसाब से बताई गई रेंज में टाइमस्टैंप. उदाहरण के लिए: क्वेरी age:5m ऐसी एंट्री के मिलान करता है जिनके टाइमस्टैंप की तारीख 5 मिनट से पहले की न हो.

age:30s
age:5m
age:3h
age:1d

ध्यान दें कि टाइमस्टैंप की तुलना होस्ट के टाइमस्टैंप से की जाती है, न कि कनेक्ट किया गया डिवाइस. अगर डिवाइस का समय सही तरीके से सेट नहीं किया गया है, तो यह क्वेरी हो सकता है कि यह उम्मीद के मुताबिक काम न करे.

is कुंजी

is बटन का इस्तेमाल इस तरह किया जा सकता है:

  • is:crash उन लॉग एंट्री से मेल खाता है जो ऐप्लिकेशन के क्रैश के बारे में बताती हैं (या तो नेटिव या Java).
  • is:stacktrace उन लॉग एंट्री से मैच करता है जो लॉग लेवल पर ध्यान दिए बिना, Java स्टैकट्रेस.

name कुंजी

name कुंजी की मदद से, सेव किए गए फ़िल्टर के लिए एक यूनीक नाम दिया जा सकता है, ताकि यह फ़िल्टर इतिहास ड्रॉपडाउन में आसानी से पहचाना जा सकता है. भले ही आपको कम क्लिक name को एक से ज़्यादा बार तय करने में गड़बड़ी हुई, तो IDE सिर्फ़ आखिरी क्वेरी में name के लिए तय किया गया मान.

क्वेरी का इतिहास देखें

आप इतिहास दिखाएं फ़िल्टर आइकॉन यह क्वेरी फ़ील्ड के बगल में मौजूद होता है. किसी क्वेरी को पसंदीदा बनाएं ताकि वह पर क्लिक करें, उसके बगल में दिए गए स्टार पर क्लिक करें. आप यह भी कर सकते हैं पसंदीदा क्वेरी को आसानी से पहचानने के लिए, name: बटन का इस्तेमाल करें. ज़्यादा के लिए जानकारी के लिए, खास क्वेरी देखें.

क्वेरी को पसंदीदा बनाने के लिए यूज़र इंटरफ़ेस (यूआई)

चौथी इमेज. किसी क्वेरी को पसंदीदा के तौर पर चुनने के लिए, उसके बगल में मौजूद स्टार पर क्लिक करें.

ऐप्लिकेशन के क्रैश होने और रीस्टार्ट होने के सभी लॉग ट्रैक करें

जब Logcat को पता चलता है कि आपके ऐप्लिकेशन की प्रोसेस रुक गई है और रीस्टार्ट हो गई है, तो यह आउटपुट में कोई मैसेज, जैसे कि PROCESS ENDED और PROCESS STARTED. Logcat को रीस्टार्ट करने से आपके सेशन का कॉन्फ़िगरेशन सुरक्षित रहता है. जैसे, टैब स्प्लिट, फ़िल्टर, और देखने के विकल्प देख सकते हैं, ताकि आप अपना सेशन आसानी से जारी रख सकें.

ऐप्लिकेशन क्रैश होने के लिए, Logcat विंडो

पांचवी इमेज. ऐप्लिकेशन की प्रोसेस रीस्टार्ट होने पर, Logcat एक मैसेज प्रिंट करता है प्रक्रिया खत्म हो गई और फिर शुरू हो गई.