如何过滤logcat去除不相关的语句
How to filter logcat to remove irrelevant statements
我是 Android Studio 的新手,使用的是最新版本,并尝试编写一个基本的计算器应用程序。
出于某种原因,我的 logcat 充满了
2021-01-11 14:38:35.288 6938-6938/? W/cmd: Can't find service car_service
这对调试来说真的很烦人。
我怎样才能摆脱它?
我会将我的评论更改为答案,看起来好像它确实有帮助:
单击 android 工作室底部的 logcat,然后(我假设)你的工作室将显示 no filters
,将下拉菜单更改为 show only selected application
。我不能在这里解释太多,除了如果你没有这样设置,logcat 除了你自己的应用程序的日志之外,还会打印出与你的应用程序无关的东西
此外,对于所有未来的读者... Android Logcat 非常冗长,尤其是在模拟器上(很多东西都会抛出 errors/warnings)但不限于;三星设备吐出的日志多于有用的信息(而且它们并不孤单),因此将其置于某些控制之下的一种方法是(ab)使用[=50的正则表达式功能=] 在 Android Studio 中过滤。
例如:
创建一个新的 LogCat 过滤器并按标签、消息或包(或像我一样的所有 3 个)进行过滤:
这是我在“消息”中使用的示例:
^((?!EGL_emulation|eglCodecCommon|OpenGLRenderer|MicroDetectionWorker|MicroDetector|KeyguardClockSwitch|adbd|OIMC|base.apk|wakelock|com.google.android.apps.youtube.music).)*$
您可以 edit/add 对这些 and/or 重复 LogTag、消息或包名称。
这主要是反复试验。 (一些设备通过 logcat 吐出不同的垃圾邮件)。
这个“非常过滤的应用程序”输出的我的日志标签过滤器是:
^((?!vendor.qti.bluetooth|AppDynamics|KeyguardUpdateMonitor|BatteryExternalStatsWorker|BatteryStatsService|tftp_server|Clock|libc|OnePlusSmartBoostManager|OnePlus|ANDR-RAMBOOST_SERVER|BoundBrokerSvc|DateView|BatteryStatsHelper|BoundBrokerSvc|RenderThread|FacsCacheGmsModule|DownloadProgressMonitor|MendelPackageState|GoogleTagManager|SELinux|Volley|ConfigFileUtils|NetRec|YouTubeMusic|GEL_DELAYED_EVENT_DEBUG|gms|AsyncOperation|angh|ContentCacheSuperpacksManager|SuperpacksManager|AwarenessClientProvider|WakeLock|GLSUser|perfetto|cmd|chatty|Binder|Fitness|Icing|GnssHAL_GnssInterface).)*$
对于包名称:
^((?!EGL_emulation|eglCodecCommon|OpenGLRenderer|MicroDetectionWorker|MicroDetector|KeyguardClockSwitch|adbd|OIMC|base.apk|wakelock|com.google.android.apps.youtube.music).)*$
当然你的里程会根据你的需要而变化,有时我会编辑这些和add/remove一些我认为合适的部分。
这是它的样子:
我是 Android Studio 的新手,使用的是最新版本,并尝试编写一个基本的计算器应用程序。
出于某种原因,我的 logcat 充满了
2021-01-11 14:38:35.288 6938-6938/? W/cmd: Can't find service car_service
这对调试来说真的很烦人。
我怎样才能摆脱它?
我会将我的评论更改为答案,看起来好像它确实有帮助:
单击 android 工作室底部的 logcat,然后(我假设)你的工作室将显示 no filters
,将下拉菜单更改为 show only selected application
。我不能在这里解释太多,除了如果你没有这样设置,logcat 除了你自己的应用程序的日志之外,还会打印出与你的应用程序无关的东西
此外,对于所有未来的读者... Android Logcat 非常冗长,尤其是在模拟器上(很多东西都会抛出 errors/warnings)但不限于;三星设备吐出的日志多于有用的信息(而且它们并不孤单),因此将其置于某些控制之下的一种方法是(ab)使用[=50的正则表达式功能=] 在 Android Studio 中过滤。
例如:
创建一个新的 LogCat 过滤器并按标签、消息或包(或像我一样的所有 3 个)进行过滤:
这是我在“消息”中使用的示例:
^((?!EGL_emulation|eglCodecCommon|OpenGLRenderer|MicroDetectionWorker|MicroDetector|KeyguardClockSwitch|adbd|OIMC|base.apk|wakelock|com.google.android.apps.youtube.music).)*$
您可以 edit/add 对这些 and/or 重复 LogTag、消息或包名称。
这主要是反复试验。 (一些设备通过 logcat 吐出不同的垃圾邮件)。
这个“非常过滤的应用程序”输出的我的日志标签过滤器是:
^((?!vendor.qti.bluetooth|AppDynamics|KeyguardUpdateMonitor|BatteryExternalStatsWorker|BatteryStatsService|tftp_server|Clock|libc|OnePlusSmartBoostManager|OnePlus|ANDR-RAMBOOST_SERVER|BoundBrokerSvc|DateView|BatteryStatsHelper|BoundBrokerSvc|RenderThread|FacsCacheGmsModule|DownloadProgressMonitor|MendelPackageState|GoogleTagManager|SELinux|Volley|ConfigFileUtils|NetRec|YouTubeMusic|GEL_DELAYED_EVENT_DEBUG|gms|AsyncOperation|angh|ContentCacheSuperpacksManager|SuperpacksManager|AwarenessClientProvider|WakeLock|GLSUser|perfetto|cmd|chatty|Binder|Fitness|Icing|GnssHAL_GnssInterface).)*$
对于包名称:
^((?!EGL_emulation|eglCodecCommon|OpenGLRenderer|MicroDetectionWorker|MicroDetector|KeyguardClockSwitch|adbd|OIMC|base.apk|wakelock|com.google.android.apps.youtube.music).)*$
当然你的里程会根据你的需要而变化,有时我会编辑这些和add/remove一些我认为合适的部分。
这是它的样子: