লগক্যাট ফিল্টারগুলি লগ করার অনুমতি দেয় তবে এটি এর মতো কাজ করে: আপনি ফিল্টারগুলি সংজ্ঞায়িত করেন এবং লগক্যাট কেবল ফিল্টারগুলির সাথে মেলে এমন বার্তা প্রদর্শন করে। ফিল্টার দ্বারা সংজ্ঞায়িত কিছু ট্যাগ ছাড়াই সমস্ত লগ প্রদর্শন করার কোনও উপায় আছে?
লগক্যাট ফিল্টারগুলি লগ করার অনুমতি দেয় তবে এটি এর মতো কাজ করে: আপনি ফিল্টারগুলি সংজ্ঞায়িত করেন এবং লগক্যাট কেবল ফিল্টারগুলির সাথে মেলে এমন বার্তা প্রদর্শন করে। ফিল্টার দ্বারা সংজ্ঞায়িত কিছু ট্যাগ ছাড়াই সমস্ত লগ প্রদর্শন করার কোনও উপায় আছে?
উত্তর:
আপনি যদি এটি ব্যবহার করেন তবে adb logcat
আপনি এটি গ্রেপের মাধ্যমে পাইপ করতে পারেন এবং এটির উল্টো মিলটি ব্যবহার করতে পারেন: গ্রেপ ম্যানপেজ থেকে :
v, --invers-ম্যাচ অ-ম্যাচিং লাইনগুলি নির্বাচন করতে, মিলের অনুভূতিটি উল্টান।
উদাহরণ স্বরূপ:
$adb logcat | grep --invert-match 'notshownmatchpattern'
আপনি নিয়মিত এক্সপ্রেশন ব্যবহার করে এটি প্রসারিত করতে পারেন ।
এখানে যেমন একটি অভিব্যক্তি উদাহরণ:
"/^(?:emails|tags|addresses)"
এইটি প্রদত্ত প্রদত্ত যে কোনও একটির জন্য যাচাই করবে, গ্রেপ তারপরে সেগুলি তালিকাভুক্ত করবে না।
grep
হ'ল একটি স্ট্যান্ডার্ড ইউনিক্স কমান্ড। উইন্ডোজ জন্য আপনি চেষ্টা করতে পারেন find /V "notshownmatchpattern"
। পিএস স্পষ্টতই, অ্যাডবি শেলটিতে একটিও রয়েছে grep
। তবে এটি স্ট্যান্ডার্ড ইউনিক্সের মতো নয় grep
!
আপনি এটি নিয়মিত এক্সপ্রেশন ইনপুট বাক্স এবং নেতিবাচক চেহারা-আগাম বক্তব্য দিয়ে ডিডিএমএস মনিটরের মধ্যে (এবং এক্স্লিপ বা অ্যান্ড্রয়েড স্টুডিও) থেকেও এটি করতে পারেন , উদাহরণস্বরূপ আমি নীচের সাথে আমার লগ থেকে প্রচুর শব্দ বাদ দিচ্ছি:
tag:^(?!(WifiMulticast|WifiHW|MtpService|PushClient))
("ট্যাগ:" নিয়মিত প্রকাশের অংশ নয়, তবে লগগ্যাটকে কেবল ট্যাগ ক্ষেত্রে প্রয়োগ করতে বলে to আপনি যদি এই কৌশলটি কোনও সংরক্ষিত ফিল্টারে ব্যবহার করেন তবে কেবল "ট্যাগ" ইনপুট বাক্সে নিয়মিত অভিব্যক্তি রাখুন , এবং "ট্যাগ:" উপসর্গটি বাদ দিন)
অ্যান্ড্রয়েড স্টুডিওর লগক্যাট মনিটরের ফলকে, আপনি উপরের ডানদিকে ড্রপডাউনটি খোলার মাধ্যমে এটির জন্য একটি সংরক্ষিত ফিল্টার সেট আপ করতে পারেন (এটিতে "কেবল নির্বাচিত অ্যাপ্লিকেশন দেখানো হতে পারে" নির্বাচিত হতে পারে) এবং ফিল্টার কনফিগারেশন সম্পাদনা নির্বাচন করে নির্বাচন করুন। একটি নতুন লগক্যাট ফিল্টার তৈরি করুন এবং রাখুন ^(?!(WifiMulticast
... ইত্যাদি। চেকবক্সটি চেকবাক্স ))
সহ লগ ট্যাগ বাক্সে Regex
।
আপনি যদি অ্যান্ড্রয়েড স্টুডিওতে ট্যাগ নামে নির্দিষ্ট বার্তা বাদ দিতে বা ফিল্টার করতে চান তবে লোগগ্যাট উইন্ডোতে গিয়ে যান => ফিল্টার কনফিগারেশন সম্পাদনা করুন এবং "লগ ট্যাগ দ্বারা (রেজেক্স)" এর নীচে নীচে প্রবেশ করুন: "
^(?!(tag1|tag2|tag3|tag4))
মনে রাখবেন যে কোনও স্থান নেই, এটি গুরুত্বপূর্ণ
^(?!tag1)
^(?!.*(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*))
শেল থেকে আপনি একটি কমান্ড ব্যবহার করতে পারেন:
adb logcat AlarmManagerService:S PowerManagerService:S *:V
যার মধ্যে ট্যাগ AlarmManagerService
এবং PowerManagerService
ট্যাগগুলি ছাড়া সমস্ত লগ অন্তর্ভুক্ত থাকবে ।
( :S
স্ট্যান্ডস "নীরব", যার অর্থ সেই ট্যাগগুলির জন্য কিছুই মুদ্রিত হবে না; :V
স্ট্যান্ডস "ভার্বোস" যার অর্থ অন্য সমস্ত ট্যাগের জন্য সমস্ত কিছু মুদ্রিত হবে log লগকটের অ্যান্ড্রয়েড ডকুমেন্টেশনে আপনি ব্যবহার করতে পারেন এমন অন্যান্য বিকল্পের আরও বিশদ রয়েছে ফিল্টারগুলি।)
আপনি ANDROID_LOG_TAGS
ডিফল্ট ফিল্টার সেট আপ করতে পরিবেশ পরিবর্তনশীলও ব্যবহার করতে পারেন , যেমন (ব্যাশে):
export ANDROID_LOG_TAGS="AlarmManagerService:S PowerManagerService:S *:V"
S
'নীরব' হয়ে রয়েছে। আপনার পরামর্শ অনুসারে, যদিও এটির ব্যাখ্যা দেওয়ার জন্য উত্তরটি আপডেট করেছি।
আরও শক্তিশালী ফিল্টারিংয়ের জন্য ইতিবাচক এবং নেতিবাচক চেহারা দুটি একত্রিত করুন।
উদাহরণ:
(?=(AndroidRuntime|Main|RandomTag))(?!(Audio))
প্রথম নেস্টেড বন্ধনীগুলিতে ট্যাগগুলি অন্তর্ভুক্ত রয়েছে।
সেকেন্ডে ট্যাগগুলি বাদ দেওয়া হয়।
আমি যে ফিল্টারগুলি স্যামসাং সিস্টেম লগগুলি উপেক্ষা করতে ব্যবহার করেছি তার একটি তালিকা এখানে । অন্যান্য ডিভাইসগুলির সাথেও কাজ করবে।
লগক্যাট -> ফিল্টার কনফিগারেশন সম্পাদনা -> লগ ট্যাগ
^(?!(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))
এটি করার একটি সহজ উপায় কেবলমাত্র আপনি যে ট্যাগগুলি দেখতে চান তা কেবল ফিল্টার করে।
adb logcat -s "Tag1" -s "Tag2" -s "Tag3"
কেবলমাত্র সেই ট্যাগগুলি নিয়ে আসবে।
Eclipse লোগক্যাট ভিউয়ের মধ্যে এমন বিকল্প নেই। তবে আপনি কোনও বার্তা বাদ দিতে লগ স্তরটি ব্যবহার করতে পারেন যার লগ স্তর খুব কম। E. g। এটিতে সেট করা (এনএফও) ডি (ইবুগ) এবং (ভি) এরবোজ বার্তা প্রদর্শন করে না।