目录
抓包步骤
步骤 1: 获取应用的包名
步骤 2: 查看单个应用的日志
步骤 3: 使用日志级别过滤器
步骤 4: 高级日志过滤
可能的原因:
解决方案:
额外提示:
日志保存
抓包步骤
连接设备
adb devices
步骤 1: 获取应用的包名
首先,找到你想要查看日志的应用的 包名。你可以通过以下命令获取已安装应用的包名列表:
adb shell pm list packages -3
例如,某个应用的包名可能是 com.example.myapp
。
步骤 2: 查看单个应用的日志
你可以通过 过滤包名 的方式,仅查看该应用的日志。命令格式如下:
adb logcat --pid=$(adb shell pidof <package_name>)
将 <package_name>
替换为目标应用的包名。例如:
adb logcat --pid=$(adb shell pidof com.example.myapp)
这样会过滤出该应用的日志,显示与该应用相关的所有日志信息。
如果以上格式无法使用子命令
adb shell pidof com.fuying.pets
假设返回值是 1234
。
步骤 3: 使用日志级别过滤器
如果你只想查看应用的 错误日志,可以结合日志级别进行过滤。你可以使用 *:E
来显示错误级别的日志,格式如下:
adb logcat --pid=$(adb shell pidof com.example.myapp) '*:E'
adb logcat -v threadtime --pid=1234 '*:E'
这将只显示应用的错误日志。
步骤 4: 高级日志过滤
你还可以结合包名和日志过滤器来只显示某些日志类型。以下是一些常见的日志过滤级别:
-
V - Verbose: 显示所有日志。
-
D - Debug: 调试日志。
-
I - Info: 显示信息级别的日志。
-
W - Warning: 显示警告。
-
E - Error: 显示错误日志。
-
F - Fatal: 显示致命错误日志。
你可以使用如下命令同时指定包名和日志级别:
adb logcat -v threadtime --pid=$(adb shell pidof com.example.myapp) '*:E'
这样你就可以看到指定应用的 错误级别 日志,结合 时间戳 信息。
可能的原因:
-
日志级别过滤
'*:E'
可能在 Windows 环境中没有正确应用,导致依然显示其他级别的日志。
解决方案:
你可以尝试使用更明确的日志过滤方式,强制只显示 错误级别 日志。使用以下命令,明确指定你只希望捕获的日志类型:
adb logcat --pid=31274 '*:S' '*:E'
这里的 *:S
表示将所有其他日志级别静默,仅保留 *:E
错误日志。
额外提示:
如果你依然看到非错误级别的日志,可以确认日志系统是否有特定的 TAG
或者 Log Level
没有被准确过滤掉。如果需要针对特定的日志标识 (TAG),也可以使用类似的过滤器,如:
adb logcat --pid=31274 'imsdk:E' '*:S'
这将只显示 imsdk
TAG 下的 错误级别 日志。
日志保存
adb logcat -v threadtime --pid=31274 'imsdk:E' '*:S' >D:\FF\log.txt