TAG নামে অ্যান্ড্রয়েড অ্যাডবি লগক্যাট ব্যবহার করে নির্দিষ্ট বার্তাগুলি কীভাবে বাদ দেবেন?


122

লগক্যাট ফিল্টারগুলি লগ করার অনুমতি দেয় তবে এটি এর মতো কাজ করে: আপনি ফিল্টারগুলি সংজ্ঞায়িত করেন এবং লগক্যাট কেবল ফিল্টারগুলির সাথে মেলে এমন বার্তা প্রদর্শন করে। ফিল্টার দ্বারা সংজ্ঞায়িত কিছু ট্যাগ ছাড়াই সমস্ত লগ প্রদর্শন করার কোনও উপায় আছে?


উত্তর:


51

আপনি যদি এটি ব্যবহার করেন তবে adb logcatআপনি এটি গ্রেপের মাধ্যমে পাইপ করতে পারেন এবং এটির উল্টো মিলটি ব্যবহার করতে পারেন: গ্রেপ ম্যানপেজ থেকে :

v, --invers-ম্যাচ অ-ম্যাচিং লাইনগুলি নির্বাচন করতে, মিলের অনুভূতিটি উল্টান।

উদাহরণ স্বরূপ:

$adb logcat | grep --invert-match 'notshownmatchpattern' 

আপনি নিয়মিত এক্সপ্রেশন ব্যবহার করে এটি প্রসারিত করতে পারেন ।

এখানে যেমন একটি অভিব্যক্তি উদাহরণ:

"/^(?:emails|tags|addresses)"

এইটি প্রদত্ত প্রদত্ত যে কোনও একটির জন্য যাচাই করবে, গ্রেপ তারপরে সেগুলি তালিকাভুক্ত করবে না।


1
@ জাস্ট grepহ'ল একটি স্ট্যান্ডার্ড ইউনিক্স কমান্ড। উইন্ডোজ জন্য আপনি চেষ্টা করতে পারেন find /V "notshownmatchpattern"। পিএস স্পষ্টতই, অ্যাডবি শেলটিতে একটিও রয়েছে grep। তবে এটি স্ট্যান্ডার্ড ইউনিক্সের মতো নয় grep!
পিসিডার

হ্যাঁ, আমি এটি ইতিমধ্যে খুঁজে পেয়েছি, সন্ধান - স্তন্যপান, পাওয়ারশেল বা গ্রেপ ইনস্টল করা সম্ভব (উইন্ডোজের জন্য :), লিনাক্স যেমন রিডমেতে লেখা হয়েছিল, তবে
বাস্তবে

কোনও অ্যাডেস নেই, আমি উইন্ডোতে গিট কমান্ডলাইন সরঞ্জামগুলির সাথে গিট ইনস্টল করার জন্য কেবল অগ্রণী হই। এটি উইন্ডোজের জন্য সমস্ত বুনিয়াদি কমান্ডলাইন সরঞ্জামগুলি ইনস্টল করবে।
ক্রিস প্লেজার

অথবা উইন্ডোজ-এ সাধারণ ইউনিক্স কমান্ডলাইন সরঞ্জামগুলির জন্য ক্লিঙ্ক ইনস্টল করুন
ক্রিস পোলজার

@ পি কোডার আপনি উইন্ডোজ সিএমডি দিয়ে একই কাজ করার জন্য পুরো কমান্ডটি লিখতে পারেন?
রাঘব সত্যদেব

217

আপনি এটি নিয়মিত এক্সপ্রেশন ইনপুট বাক্স এবং নেতিবাচক চেহারা-আগাম বক্তব্য দিয়ে ডিডিএমএস মনিটরের মধ্যে (এবং এক্স্লিপ বা অ্যান্ড্রয়েড স্টুডিও) থেকেও এটি করতে পারেন , উদাহরণস্বরূপ আমি নীচের সাথে আমার লগ থেকে প্রচুর শব্দ বাদ দিচ্ছি:

tag:^(?!(WifiMulticast|WifiHW|MtpService|PushClient))

("ট্যাগ:" নিয়মিত প্রকাশের অংশ নয়, তবে লগগ্যাটকে কেবল ট্যাগ ক্ষেত্রে প্রয়োগ করতে বলে to আপনি যদি এই কৌশলটি কোনও সংরক্ষিত ফিল্টারে ব্যবহার করেন তবে কেবল "ট্যাগ" ইনপুট বাক্সে নিয়মিত অভিব্যক্তি রাখুন , এবং "ট্যাগ:" উপসর্গটি বাদ দিন)

অ্যান্ড্রয়েড স্টুডিওর লগক্যাট মনিটরের ফলকে, আপনি উপরের ডানদিকে ড্রপডাউনটি খোলার মাধ্যমে এটির জন্য একটি সংরক্ষিত ফিল্টার সেট আপ করতে পারেন (এটিতে "কেবল নির্বাচিত অ্যাপ্লিকেশন দেখানো হতে পারে" নির্বাচিত হতে পারে) এবং ফিল্টার কনফিগারেশন সম্পাদনা নির্বাচন করে নির্বাচন করুন। একটি নতুন লগক্যাট ফিল্টার তৈরি করুন এবং রাখুন ^(?!(WifiMulticast... ইত্যাদি। চেকবক্সটি চেকবাক্স ))সহ লগ ট্যাগ বাক্সে Regex


অন্ধকার Logcat জন্য ভালো সমাধান
উচ্চতম শ্রেণীয় দেবদূত এর

6
আমার দৃষ্টি অবিলম্বে কম ঝাপসা! : ডি
suomi35

এটি আমি বেশ কিছুক্ষণ খুঁজছি
ar-g

মোহন মত কাজ! অনেক ধন্যবাদ. "Dalvikvm" শব্দটি এটিতে যুক্ত করুন। এটি লগকটে সবচেয়ে বিরক্তিকর।
অতুল

1
- Logcat ফিল্টারিং সঙ্গে উত্তর সঠিক হয় stackoverflow.com/a/17468665/828237
kwesolowski

74

আপনি যদি অ্যান্ড্রয়েড স্টুডিওতে ট্যাগ নামে নির্দিষ্ট বার্তা বাদ দিতে বা ফিল্টার করতে চান তবে লোগগ্যাট উইন্ডোতে গিয়ে যান => ফিল্টার কনফিগারেশন সম্পাদনা করুন এবং "লগ ট্যাগ দ্বারা (রেজেক্স)" এর নীচে নীচে প্রবেশ করুন: "

^(?!(tag1|tag2|tag3|tag4))

মনে রাখবেন যে কোনও স্থান নেই, এটি গুরুত্বপূর্ণ


এই উত্তরটি ইন্টেলিজ 15 এর লগক্যাট> ফিল্টার কনফিগারেশন সম্পাদনা করে যা "নতুন লগক্যাট ফিল্টার তৈরি করুন" শীর্ষক একটি মডেল নিয়ে আসে।
পেটি

1
ধন্যবাদ. বিটিডব্লু লেনোভো ফোনের প্রচুর স্প্যাম লগ বার্তা রয়েছে
সিগাল

এটি কেবল সেই ট্যাগের লগগুলিকে লগতে যদিও রেন্ডার করা থেকে বিরত করে। মনিটর এখনও পটভূমিতে those কলগুলির সাথে জলাবদ্ধ হয়ে যায় এবং এটি "ট্যাগ1 | ট্যাগ2 | ইত্যাদি" কলগুলিকে বাফারের বাইরে ঠেলে দেয়। যে কাছাকাছি একটি উপায় আছে কি?
দ্য বেস্টবিগআল

- Logcat ফিল্টারিং সঙ্গে উত্তর সঠিক হয় stackoverflow.com/a/17468665/828237
kwesolowski

বা যদি একটি ট্যাগ হয়^(?!tag1)
ভ্লাদ

34

^(?!.*(WindowManager|dalvik|Environment|DataRouter|AlarmManager)).*$

এটি উইন্ডো ম্যানেজার, ডালভিক, ...

tag:^(?!.*(WindowManager|dalvik|Environment|DataRouter|AlarmManager)).*$

এটি লগক্যাট থেকে উইন্ডো ম্যানেজার, ডালভিক, ... ট্যাগগুলি বাদ দেবে


আরও কিছু:^(?!(WifiMulticast|WifiHW|MtpService|PushClient|EGL_emulation|OpenGl*|InputReader|art|dalvik|Environment|DataRouter|AlarmManager|WindowManager|PhoneStatusBar|ActivityManager|ResourceType|PackageManager|gralloc*))
গুরুপদ মামাদপুর

এবং আরও: (Gnss | নেটআরসি | রেজলভারকন্ট্রোলার | GAv4 | AsyncOperation | অ্যাপোপস | উইপিকডকন্ট্রোল | aofp | ওয়াইফাই | নেটমগ্রার | ctxmgr | বেস্টক্লোক | ফায়ারবাইসইন্ট্যান্সআইডি | android.os.Debug | মেট্র্যাক | নেটড্রোকেটার নেটওয়ার্কমোট্রেকটার BroadcastQueue | ConnextivityService | WakeLock | HttpClientWrapper | RAWR | মর্ম | BgTask | WifiService | BluetoothAdapter | UpdateStatsService | AppIdleHistory | কানেক্টিভিটি | VelvetNetworkClient | WorkerManager | EGL_emulation | অবাঞ্ছিত | gralloc | InputReader | ActivityThread | ActivityTaskManager | UsageStatsService | ocess.gservice | DropBoxManagerService | EventLogChimeraService | পিসিন্টেক্সটমেট্রিক্স রুনার))
গ্রামীণ

32

শেল থেকে আপনি একটি কমান্ড ব্যবহার করতে পারেন:

adb logcat AlarmManagerService:S PowerManagerService:S *:V

যার মধ্যে ট্যাগ AlarmManagerServiceএবং PowerManagerServiceট্যাগগুলি ছাড়া সমস্ত লগ অন্তর্ভুক্ত থাকবে ।

( :Sস্ট্যান্ডস "নীরব", যার অর্থ সেই ট্যাগগুলির জন্য কিছুই মুদ্রিত হবে না; :Vস্ট্যান্ডস "ভার্বোস" যার অর্থ অন্য সমস্ত ট্যাগের জন্য সমস্ত কিছু মুদ্রিত হবে log লগকটের অ্যান্ড্রয়েড ডকুমেন্টেশনে আপনি ব্যবহার করতে পারেন এমন অন্যান্য বিকল্পের আরও বিশদ রয়েছে ফিল্টারগুলি।)

আপনি ANDROID_LOG_TAGSডিফল্ট ফিল্টার সেট আপ করতে পরিবেশ পরিবর্তনশীলও ব্যবহার করতে পারেন , যেমন (ব্যাশে):

export ANDROID_LOG_TAGS="AlarmManagerService:S PowerManagerService:S *:V"

এটি একটি ভাল পরামর্শ এবং কোনও পাইপলাইন ছাড়াই কমান্ড লাইন থেকে কাজ করে। আপনার উত্তরটি ইমোতে আপডেট করে বোঝাতে হবে যে ": এস" অংশটি কেবলমাত্র নামকৃত উপাদানগুলির জন্য গুরুতর বার্তা নির্গত করতে চলেছে (যা খুব কমই ঘটে)। আবার, ভাল উত্তর। লোকেরা এটিকে ভোট দেওয়া উচিত ...
ক্রিস মার্কেল

1
@ ক্রিসমার্কল ডক্স অনুসারে S'নীরব' হয়ে রয়েছে। আপনার পরামর্শ অনুসারে, যদিও এটির ব্যাখ্যা দেওয়ার জন্য উত্তরটি আপডেট করেছি।
ধনী

2
আপনি পরিবেশের পরিবর্তনশীল ANDROID_LOG_TAGS ব্যবহার করে একইভাবে লগক্যাট আউটপুট ফিল্টার করতে পারেন। আমি এটি আরও কিছু স্প্যামি প্রক্রিয়া বাদ দিয়ে সর্বদা সেট করে রাখা দরকারী বলে মনে করি।
এমিডেন্ডার

16

আরও শক্তিশালী ফিল্টারিংয়ের জন্য ইতিবাচক এবং নেতিবাচক চেহারা দুটি একত্রিত করুন।

উদাহরণ:

(?=(AndroidRuntime|Main|RandomTag))(?!(Audio))

প্রথম নেস্টেড বন্ধনীগুলিতে ট্যাগগুলি অন্তর্ভুক্ত রয়েছে।

সেকেন্ডে ট্যাগগুলি বাদ দেওয়া হয়।


আইএমএইচও, লগগুলি ফিল্টার করার এটি আরও বিস্তৃত উপায়।
itতেশ

4

আমি যে ফিল্টারগুলি স্যামসাং সিস্টেম লগগুলি উপেক্ষা করতে ব্যবহার করেছি তার একটি তালিকা এখানে । অন্যান্য ডিভাইসগুলির সাথেও কাজ করবে।

লগক্যাট -> ফিল্টার কনফিগারেশন সম্পাদনা -> লগ ট্যাগ

^(?!(PowerUI|PowerPlanningReceiver|BatteryService|SamsungPhoneWindowManager|MotionRecognitionService|AudioService|APM_AudioPolicyManager|SensorService|StorageManager|SignalClusterView|BatteryService|TelephonyManager|UsbDeviceManager|KeyguardUpdateMonitor|BatteryController|ActivityManager|LauncherAppsService|AppsModel|DataLoader|PackageManager|LauncherApps|ContactsImsCommon|ImsUtil|ImsSettingsProvider|DeviceConfigManager|WifiService|BackupManagerService|PersonaManagerService|DefaultDialerManager|ResourceType|NetworkUIGlobals|NetworkProxy|FileWriteThread|ReflectUtil|PhoneApp|SamsungAlarmManager|display|DeviceStorageMonitorService|wrapperGPS|io_stats|GnssLocationProvider|KeyguardServiceBoxContainer|ConnectivityService|SSRM|TLC_TIMA_PKM_initialize|mc_tlc_communication|TeeDriverClient|TLC_TIMA_PKM_measure_kernel|AutomaticBrightnessController|BatteryUtils|WifiConnectivityManager|Launcher|IconView|ApplicationPackageManager|LiveIconLoader|WifiScanningService|WifiHAL|WifiScanController|ApplicationPolicy|SELinux|TimaKeyStoreProvider|ActivityThread|zygote|GservicesProvider|GoogleHttpClient|cr_ChildProcessConnect|WificondControl|Netd|Tethering|ContactsImsCommon|ImsConstants|tnet-jni|BatteryStatsService|SignalClusterView|LiveIconManager|BitmapCacheContainer|com.samsung.android.app.powerplanning.utils.BatteryUtils|ReflectField|cr_ChildConnAllocator|TinLoadingFailTracker|WifiPermissionsUtil|EventHandler_FLP|android.hardware.wifi@1.0-service|BluetoothAdapter|bt_btm|WifiPermissionsUtil|GeofencerStateMachine|Places|GCoreUlr|BeaconBle|Sensors|SLocation|ContactsProvider_EventLog|WificondScannerImpl|AlarmManager|AlarmManagerEXT|MultiDex|NetworkSecurityConfig|DnsProxyListener|dalvik-internals|mobileconfig|SsacManager|ImsPhoneStateManager|VolteServiceModule|PdnController|PowerManagerService|GameManagerService|NoSync|SensorManager|DisplayPowerController|NetworkController|SamsungAnalytics111040|tlcFidoAuthnr|InputReader|FlashlightController|KeyguardWallpaperController|OpenGLRenderer|EasyMuteController|Vibrator|VibratorService|PowerManagerUtil|LightsService|WindowManager|InputDispatcher|InputReader|CustomFrequencyManagerService|SystemUIAnalytics|SamsungAnalytics|swipe|PanelView|BadgeCache|MARsPolicyManager|MARsDBManager|KeyguardClockPage|ScanManager|RegiMgrBase|secImsManager|GeolocationController|MultiSimUtils|CarrierText|Mms|NetworkNotificationUI2|CommandListener|ReschedulableTimer|RCS-ContactsImsCommon|Settings|DmConfigModule|NotificationMgr2|PhoneMultiSimUtils|PhoneProxy|VideoCapabilities|AudioCapabilities|SAIV_FACE|FaceController|FaceService|SamsungAnimationCreator|ImageWallpaper|Finsky|VirtualScreen|PagedView|DragLayer|HomeContainer|ImsServiceStub|DmConfigHelper|TZ))

1

এটি করার একটি সহজ উপায় কেবলমাত্র আপনি যে ট্যাগগুলি দেখতে চান তা কেবল ফিল্টার করে।

adb logcat -s "Tag1" -s "Tag2" -s "Tag3"

কেবলমাত্র সেই ট্যাগগুলি নিয়ে আসবে।


0

Eclipse লোগক্যাট ভিউয়ের মধ্যে এমন বিকল্প নেই। তবে আপনি কোনও বার্তা বাদ দিতে লগ স্তরটি ব্যবহার করতে পারেন যার লগ স্তর খুব কম। E. g। এটিতে সেট করা (এনএফও) ডি (ইবুগ) এবং (ভি) এরবোজ বার্তা প্রদর্শন করে না।


ওয়েল আমি উল্লেখ করতে ভুলে গেছি যে লগগুলি পড়ার জন্য আমি কোনও কমান্ড প্রম্পট / ফোনের ভিতরে ব্যবহার করছি। এবং প্রতিবার আমি যখন কোনও স্ক্রিনটি ট্যাপ করি তখন এটি ইনপুট রিডার / ইনপুটডিসপ্যাচার বার্তা প্রদর্শন করে যা কেবলমাত্র পর্দা প্লাবিত করছে। এখন আমি "ইনপুট রিডার: এস ইনপুটডিসপাচারার: ​​এস" এর জন্যও ফিল্টারগুলি সেট করে দেখছি :) একটি উত্তরের জন্য ধন্যবাদ!
কোস্টাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.