2011-10-25 12 views
72

में एक टैगनाम को फ़िल्टर करने के लिए कैसे करें मेरे पास एक एंड्रॉइड एप्लिकेशन है जो लॉगकैट को "स्पैम" करता है और आउटपुट को और अधिक पठनीय करने के लिए मैं अपनी लॉगकैट प्रविष्टियों को हटाना चाहता हूं।Eclipse LogCat Viewer

क्या एक फ़िल्टर होना संभव है जो एक विशिष्ट टैग नाम के लिए लॉगकैट प्रविष्टियों को हटा दें? या एक खोज पैटर्न जो चाल करता है?

+0

@pankaj यह वही नहीं है जो मैं चाहता हूं। मैं उन्हें अलग करने के बजाय कुछ विशिष्ट प्रविष्टियों को हटाने का एक तरीका चाहता हूं। – Jleuleu

उत्तर

178

हां। एक फ़िल्टर बनाकर जहां "लॉग टैग द्वारा" क्षेत्र

^(?!.*(MYTAG)).*$ 

जहां MYTAG टैग आप को देखने के लिए नहीं करना चाहती है। मैं regexp विशेषज्ञ नहीं हूं (एक "regexpert"? ;-)) तो उस अस्वीकृति को करने का एक आसान तरीका हो सकता है, लेकिन मैंने अभी कोशिश की और यह काम करता है।

आप, बस लॉग बिल्ली संदेश क्षेत्र के ऊपर क्षेत्र में फिल्टर के साथ चारों ओर खेल सकते हैं वहाँ फिल्टर तार में प्रवेश, इस तरह से:

tag:^(?!.*(DeskClock|dalvik|wpa)).*$ 

जो सभी संदेशों छोड़कर टैग "DeskClock" दिखाएगा , "दल्विक", और "डब्ल्यूपीए"।

+0

आप ग्रहण लॉगकट दृश्य में लिस्टिंग के ऊपर खोज बार में यह रेगेक्स भी जोड़ सकते हैं। धन्यवाद! –

+0

धन्यवाद। मुझे हमेशा regexp बनाने में समस्याएं होती हैं जो केवल आउटपुट दिखाती हैं जो मेल नहीं खाती है। बहुत उपयोगी। डीडीएमएस वास्तव में अब उपयोगी है। – chriv

+0

बहुत बहुत धन्यवाद। यह बहुत उपयोगी है, मुझे नहीं पता था कि मैं यहां रेगेक्स का उपयोग कर सकता हूं। – razielsarafan

8

इस बात पर निर्भर करता है कि आप किस तरह से अपना लॉगक देखते हैं।

यदि आप जीयूआई लॉगक इंटरफ़ेस का उपयोग कर रहे हैं तो टैग के लिए फ़िल्टर बनाना सर्वोत्तम है, जिसे आप देखना चाहते हैं। ये एक अलग श्रेणी में गिरा दिया जाता है। हालांकि ui थोड़ा बदल गया है, आप इस old answer from me का उपयोग कर सकते हैं। यह स्पष्ट होना चाहिए कि इसका उपयोग कैसे किया जाता है (सुनिश्चित करें कि "डिस्प्ले फ़िल्टर टैब" बटन दबाया गया है, अन्यथा आपको "फ़िल्टर जोड़ें" बटन नहीं दिखाई देगा। आप इसे लॉग के ऊपरी दाएं भाग पर देख सकते हैं)। मुझे किसी भी विकल्प से अवगत नहीं है जो आपको पूरे लॉगस्ट्रीम से कुछ टैग फ़िल्टर करने देता है।

यदि आप कमांड लाइन का उपयोग कर रहे हैं तो आप कुछ टैग म्यूट कर सकते हैं। उदाहरण:

adb logcat AndroidRuntime:S *:V 

, वर्बोज़ लॉग स्तर तक सब कुछ (*:V) से पता चलता टैग AndroidRuntime है, जो "चुप्पी" LogLevel, यह कुछ भी प्रिंट होगा जिसका मतलब है कि तक ही सीमित रहेगा छोड़कर।

मात्र एक टैग प्रदर्शित करने के लिए आप

adb logcat *:S MyAppTag:V OtherTag:V 

एक ही तरीके से उपयोग कर सकते हैं, सब कुछ MyAppTag और OtherTag छोड़कर खामोश हो जाता है। अधिक जानकारी के लिए Filtering Log Output देखें।

Log.d(TAG, "MyTag" + message); 

आप देख सकते हैं, जब मैं एक कुंजी "MyTag" के साथ फ़िल्टर कर, यह केवल पता चलता मेरी टैग से लॉग इन करें:

+0

धन्यवाद, 'adb logcat : एस *: वी' जो मैं ढूंढ रहा था। मैं ग्रहण जीयूआई लॉगक इंटरफ़ेस में एक ही व्यवहार करना चाहता हूं, लेकिन अभी के लिए मैं कमांड लाइन का उपयोग करूंगा। – Jleuleu

1

यह एक देर से प्रतिक्रिया, लेकिन शायद उपयोगी है। ग्रहण पर्यावरण में, लॉगकैट दृश्य में, तालिका के ऊपर एक खोज बॉक्स है। ध्यान दें, खाली होने पर यह पढ़ता है:

संदेशों के लिए खोजें। जावा regexes स्वीकार करता है।पिड के साथ उपसर्ग :, ऐप: टैग: या पाठ: दायरे को सीमित करने के लिए। MyTag या यहाँ तक कि regex टैग:

यह तुम वहाँ टैग लिख कर अपने टैग फ़िल्टर कर सकते हैं मतलब है। मेरे *

9

यह सीधे प्रश्न के लिए प्रासंगिक नहीं लग रहे हैं, लेकिन यहाँ हो सकता है एक regex है जो जब आप इसे अपने टैग फ़िल्टर as described by Rob में डालते हैं तो अधिकांश सिस्टम जेनरेट किए गए लॉग फ़िल्टर करते हैं।

^(?!(WifiMulticast|WifiHW|MtpService|PushClient|InputMethodManager|Provider|SurfaceTextureClient|ImageLoader|dalvikvm|OpenGLRenderer|skia|AbsListView|MediaPlayer|AudioManager|VelocityTracker|Drv|Jpeg|CdpDrv|IspDrv|TpipeDrv|iio|ImgScaler|IMG_MMU|ResMgrDrv|JpgDecComp|JpgDecPipe|mHalJpgDec|PipeMgrDrv|mHalJpgParser|jdwp|libEGL|Zygote|Trace|InputEventReceiver|SpannableStringBuilder|IInputConnectionWrapper|MotionRecognitionManager|Choreographer|v_galz|SensorManager|Sensors|GC|LockPatternUtils|SignalStrength|STATUSBAR-BatteryController|BatteryService|STATUSBAR-PhoneStatusBar|WifiP2pStateTracker|Watchdog|AlarmManager|BatteryStatsImpl|STATUSBAR-Clock)) 

मैं टैग की इस सूची को अद्यतन करता रहता हूं क्योंकि मुझे विभिन्न उपकरणों पर परीक्षण करना पड़ता है। सूची संपूर्ण नहीं है और आप इस उत्तर में योगदान करने के लिए स्वतंत्र हैं। मुझे यकीन है कि यह कई लोगों के लिए एक घंटे बचाएगा।

यदि अन्य अन्य लॉग हैं तो आपको फ़िल्टर किए जाने की आवश्यकता है, उन्हें '' का उपयोग करके इस रेगेक्स में शामिल करें। 'चरित्र।

5

मुझे एंड्रॉइड स्टूडियो (आईडीई जो एंड्रॉइड एसडीके के भविष्य के संस्करणों के साथ आएगा) में ठीक से काम करने के लिए चुना गया समाधान नहीं मिला। हालांकि निम्नलिखित regex मेरी समस्या हल:

"शो केवल चयनित शब्दाडंबरपूर्ण

:

^(?!dalvikvm) 
+0

मेरे लिए काम करता है , धन्यवाद! – huangcd

0

लॉग संदेशों, जो आपके ऐप्लिकेशन से ही शुरू नहीं करते बाहर फिल्टर करने के लिए एक और तरीका है का चयन करने के लिए है:

लॉग स्तर एप्लिकेशन "(फ़िल्टर चयन ड्रॉप डाउन से)

फिर लॉगक विंडो में ड्रॉप डाउन डिबग्रेबल सूची से अपना एप्लिकेशन चुनें।

यह केवल आपके ऐप से लॉग संदेश और आउटपुट दिखाना चाहिए।

+0

वैसे भी .... आपको अवांछित बनावट विस्तार को फ़िल्टर करने के लिए रेगेक्स की आवश्यकता है ... और अन्य आपके ऐप नाम से सामान हैं। – Davidea