मैं एंड्रॉइड लॉग को कैसे देख और जांच सकता हूं?


109

एंड्रॉइड सिस्टम लॉग में बहुत सारे दिलचस्प सामान हैं, जो कई मायनों में सहायक है

  • समस्याओं के मूल कारणों का पता लगाएं
  • दुर्व्यवहार करने वाले ऐप्स की पहचान करें

मैं एंड्रॉइड लॉग को कैसे देख और जांच सकता हूं?


टिप्पणियाँ विस्तारित चर्चा के लिए नहीं हैं; इस वार्तालाप को बातचीत में स्थानांतरित कर दिया गया है ।
मैथ्यू पढ़ें

जवाबों:


59

Android 4.1 और नया

एसडीके डाउनलोड करने और उपयोग करने के लिए पसंदीदा तरीका है adb logcat(डिवाइस पर "डेवलपर विकल्प" को सक्रिय करने की आवश्यकता है)।

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

एंड्रॉइड 4.0 और पुराने

आप या तो एसडीके डाउनलोड कर सकते हैं और Google Play Store से Logcat Extrem का उपयोग adb logcatकर सकते हैं या प्राप्त कर सकते हैं , जो सीधे आपके फोन पर लॉग दिखाता है।


2
वैकल्पिक रूप से, आप एसडी कार्ड पर फ़ाइल में लॉग को निरंतर लिखने के लिए कमांड "logcat> /sdcard/log.txt" के साथ टर्मिनल एमुलेटर का उपयोग कर सकते हैं। यह यादृच्छिक रीबूट के साथ समस्याओं का पता लगाने में मदद कर सकता है।
15

अच्छी बात। कुछ फोन तुच्छ जानकारी से भरे लॉग को स्पैम कर देते हैं, इसलिए यदि आप डेवलपर.
Onik

LogCat Apps JellyBean के साथ किसी भी तरह से काम नहीं करता है। Google ने Android API बदल दिया, ऐप्स के पास अपने स्वयं के अलावा अन्य ऐप्स से लॉग पढ़ने की अनुमति नहीं है।
Leandros

: मैं एक सरल उपयोगिता बनाया है एक पीसी से लॉग एकत्रित करने gist.github.com/hrj/5983971
HRJ

Logcat Extreme, log
Arpit Patel

57

लॉग-फ़ाइल स्थान

कई निर्देशिकाएं हैं जहां लॉग (क्रैश से उन लोगों सहित) प्रकट हो सकते हैं - उनमें से सभी मानकीकृत नहीं हैं (यानी कुछ रॉम-विशिष्ट हो सकते हैं)।

  • /data/anr: कुछ ट्रेस फाइलें यहां मिलती हैं (Dalvik यहां ANR पर स्टैक के निशान लिखते हैं, यानी "एप्लीकेशन नॉट रिस्पॉन्स" उर्फ ​​"फोर्स-क्लोज़", देखें; उदाहरण के लिए यहाँ लॉग इन करें )
  • /data/dontpanicएक मानक स्थान (AOSP) प्रतीत होता है, और इसमें कुछ क्रैश लॉग शामिल होते हैं जिनमें निशान (उदाहरण के लिए फ़ोरेंसिक्स और StackOverflow ) शामिल हैं
  • /data/kernelpanics एक और स्थान है - मेरे एंड्रॉइड डिवाइसों पर कोई "कर्नेल पैनिक" नहीं था, मैंने वहां अभी तक कोई सामग्री नहीं देखी।
  • /data/panic/panic_daemon.configकॉन्फ़िगर किया गया अन्य स्थानों के मई बिंदु - मेरे Droid 2 पर यह उल्लेख है/sdcard/panic_data/
  • उल्लेख Droid 2 भी एक /data/panicreportsनिर्देशिका (यहाँ खाली है)
  • /data/tombstonesकई tombstone_nnफ़ाइलों को पकड़ सकता है ( nnएक धारावाहिक होने के साथ, हर नई फ़ाइल के साथ बढ़ा हुआ)। चूंकि कब्रों को मृतकों के लिए रखा जाता है, यह यहां "दुर्घटनाओं से मृत्यु हो गई" (यानी दुर्घटनाग्रस्त) के लिए किया जाता है - और इसे लिनक्स / यूनिक्स प्रणालियों पर "कोर डंप" के रूप में संदर्भित किया जाता है। हालाँकि, सभी ऐप कब्रिस्तान नहीं बनाते हैं; इसे डेवलपर द्वारा स्पष्ट रूप से सक्षम किया जाना चाहिए (देखें Android कोर डंप्स को डीबग करना )।

कुछ और स्थान हो सकते हैं जो मुझे बच गए; लेकिन जैसा कि अधिकांश लॉगिंग पर किया जाता है tmpfs, ये डेटा रिबूट के साथ खो जाते हैं, और ओप्स प्रश्न से मेल नहीं खाते।

टर्मिनल ऐप (या अदब) के साथ उपयोग करने के लिए कमांड लॉग करें

कई कमांड आपको जानकारी प्राप्त कर सकते हैं। उनमें से ज्यादातर के लिए, उन्हें एक फ़ाइल ( > filename.ext) में फिर से निर्देशित करने या उन्हें एक फिल्टर ( | grep search-for-this) के माध्यम से पाइप करने की सिफारिश करना है :

कर्नेल लॉग

निम्नलिखित जड़ के बिना काम करता है:

$ dmesg
<6>[82839.126586] PM: Syncing filesystems ... done.
<7>[82839.189056] PM: Preparing system for mem sleep
<4>[82839.189361] Freezing user space processes ... (elapsed 0.05 seconds) done.
<4>[82839.240661] Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
<snip>

logcat

यहां आप यह बता सकते हैं कि आप किस क्षेत्र में रुचि रखते हैं - रेडियो, ईवेंट ...

# logcat -b events
I/am_create_service( 3457): [1085416560,nitro.phonestats/.widget.WidgetProvider4x1$WidgetUpdateService4x1,,3721]
I/am_destroy_service( 3457): [1085416560,nitro.phonestats/.widget.WidgetProvider4x1$WidgetUpdateService4x1,3721]
I/notification_cancel( 3457): [nitro.phonestats,4,0] 
<snip>

डिवाइस की जानकारी प्राप्त करना

और इसके टन: डिवाइस की बारीकियों, खाता जानकारी, सेवाओं ...

$ dumpsys
Currently running services:
  LocationProxyService
  SurfaceFlinger
  accessibility
  account
  activity
<snip>
DUMP OF SERVICE account:
Accounts:
  1 Account {name=xxxxxxx@googlemail.com, type=com.google}
<snip> 

$ dumpstate
========================================================
== dumpstate: 2012-08-18 23:39:53
========================================================

Build: Gingerbread GWK74 - CyanogenMilestone2
Bootloader: 0x0000
Radio: unknown 
<snip>
------ MEMORY INFO (/proc/meminfo) ------
MemTotal: 487344 kB
MemFree: 10436 kB 
<snip>

ऑल - इन - वन

लॉगकट से डंपस्टेट तक, एक साथ सब कुछ के साथ एक बड़ी गेंद बनाएं:

$ bugreport > /mnt/sdcard/bugreport.txt

मुझे पूरा यकीन है कि आप वास्तव में उस अंतिम कमांड को पुनर्निर्देशित करना चाहते हैं ... xD

अनुमतियों के बारे में कुछ

पुनश्च: स्वाभाविक रूप से, उन सूचनाओं तक पहुंच को रूट की आवश्यकता हो सकती है, क्योंकि अधिकांश स्रोत आंतरिक भंडारण पर स्थित हैं।


Adb logcat कमांड में कुछ और जानकारी प्राप्त करने के लिए यहां देखें ।
परीक्षण

या सिर्फ हमारे जाँच लॉगिंग टैग-विकी है कि और भी अधिक संदर्भ :) है - @testing
इज़ी

"डिबगिंग एंड्रॉइड कोर डंप्स" के लिए लिंक मर चुका है, क्या हमें कोई विकल्प मिल सकता है?
स्पाइडी

1
@Spidey हमेशा वहाँ Archive.ORG इस तरह की समस्या के लिए (लिंक वहाँ एक काम की नकल करने के लिए चला जाता है)।
इज़ी

12

एक पाया कि कैटलॉग एंड्रॉइड लॉग को थोड़ा बेहतर दिखाता है तो एलॉगट। इसके अलावा adb logcat, कि मैं क्या उपयोग कर रहा हूँ।


ऊपर मेरी टिप्पणी देखें, LogCat एप्लिकेशन के बारे में।
Leandros

2
मैंने सवाल अपडेट किया है। कृपया ध्यान दें कि सापेक्ष स्थिति की जानकारी (उदाहरण के लिए "ऊपर") आसानी से पुरानी हो सकती है, क्योंकि उत्तरों का क्रम समय के साथ बदल सकता है।
प्रवाह करें

3

रूट के बिना एक विधि, जो नए एंड्रॉइड संस्करणों के साथ भी काम करती है:

आवश्यक शर्तें:

  • लिनक्स, विंडोज या मैक
  • आपके डिवाइस के लिए यूएसबी केबल
  • Android डिवाइस

निर्देश:

  1. Adb का उपयोग करने के लिए अपने डिवाइस ड्राइवर को स्थापित करें। आपकी जरूरत की हर चीज आपको यहां मिल जाएगी
  2. अपने OS के लिए adb निष्पादन योग्य डाउनलोड करें। यह एंड्रॉइड एसडीके का हिस्सा है, लेकिन आप व्यक्तिगत रूप से एडीबी निष्पादन योग्य खोजने में सक्षम हो सकते हैं।
  3. अपने Android डिवाइस से कनेक्ट करें।
  4. डेवलपर विकल्प सक्षम करें
  5. यूएसबी डिबगिंग सक्षम।
  6. एक कमांड प्रोम (विंडोज़) या टर्मिनल (लिनक्स / मैक) खोलें। यह कैसे करें: विंडोज पर: विंडोज़ + आर> "सीएमडी" (बिना उद्धरण के) दर्ज करें> एंटर पर क्लिक करें | लिनक्स पर: आप नहीं जानते कि टर्मिनल कैसे खोला जाता है? LOL | Mac पर: Terminalस्पॉटलाइट में टाइप करें और इसे खोलें
  7. उस सीडी की निर्देशिका जहां adb निष्पादन योग्य स्थित है। विंडोज पर: उस निर्देशिका पर जाएं जहां आपने adb निष्पादन योग्य डाउनलोड किया है, Shift + राइट क्लिक करें और "ओपन कंसोल" (या समान) का चयन करें। लिनक्स / मैक पर: निर्देशिका में राइट क्लिक करें और "यहां टर्मिनल खोलें" (या बस सीडी को सीडी में चुनें)
  8. अपने cmd / टर्मिनल में टाइप करें: adb devicesसत्यापित करने के लिए कि आपका डिवाइस ठीक से जुड़ा हुआ है।
  9. यदि आपका उपकरण ठीक से चयनित है, adb logcatतो शक्तिशाली और जादू लॉगकाट उर्फ ​​स्टैकट्रेस दिखाने के लिए टाइप करें ।
  10. अपने डिवाइस पर अपनी त्रुटि (या जो कुछ भी) को पुन: उत्पन्न करें।
  11. ठीक इसके बाद, पूरी cmd / टर्मिनल विंडो को पेस्ट-सर्विस जैसे http://pastebin.com/ पर पेस्ट करें और हमें भेजें।

(ज्यादातर Leandros से नकल )


2

नि: शुल्क ऐप SysInfo ( प्रोजेक्ट पेज ) सिस्टम लॉग के साथ-साथ ईमेल, ड्रॉपबॉक्स, एनएफसी, आदि के माध्यम से भेजने के लिए एक पूरी प्रणाली रिपोर्ट प्रदर्शित करेगा। अन्य दिलचस्प प्रणाली की बहुत सारी जानकारी का उल्लेख नहीं करने के लिए।


(हाँ, मुझे लगभग एक वर्ष देर हो चुकी है, लेकिन इस एक उल्लेख की आवश्यकता है)।
JRobert

दोनों लिंक अब टूट गए हैं।
jk7

दूसरा लिंक (प्रोजेक्ट पेज) अभी भी मेरे लिए काम करता है लेकिन इसमें अंतिम प्रविष्टियां 2010 से हैं। कुछ समय के बाद से एंड्रॉइड में बदलाव आया है और तब से Sysinfo की कार्यक्षमता टूट गई है।
जेब्रर्ट

-1

में स्थित है /sdcard/bugreports


3
मैंने अपने फोन पर कभी ऐसा फ़ोल्डर नहीं लिया है ... क्या यह किसी निर्माता या उपकरण के लिए विशिष्ट है?
मैथ्यू पढ़ें

2
से Logcat - CyanogenMod विकी : आप / sdcard / bugreports में एक बग रिपोर्ट फ़ाइल बनाने के लिए एक जादू कुंजी संयोजन का उपयोग कर सकते हैं। ऐसा लगता है कि ए) थोड़ा विशिष्ट है (शायद सीएम के लिए), और बी) सवाल का जवाब नहीं है, क्योंकि ओपी "स्वचालित रूप से उत्पन्न" लोगों के लिए देखता है।
इज़ी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.