adb如何查看日志

adb logcat 是 Android 调试桥(ADB)工具的一部分,用于从 Android 设备上获取日志数据。这些日志包括设备上运行的应用程序和系统本身的输出信息。以下是一些基本的 adb logcat 指令及其用法:

查看所有日志

1
adb logcat

查看特定缓冲区

1
2
3
4
5
adb logcat -b main
adb logcat -b system
adb logcat -b radio
adb logcat -b events
adb logcat -b crash

按标签过滤

1
adb logcat -s "MyTag"

按级别过滤(V/D/I/W/E/F/S)

1
adb logcat *:E

清除日志缓冲区

1
adb logcat -c

保存到文件

1
adb logcat -f /sdcard/log.txt
1
2
3
4
5
6
7
8
# 1. 检查设备连接
adb devices

# 2. 清除旧日志(可选)
adb logcat -c

# 3. 开始记录带时间戳的日志到文件
adb logcat -v time > "C:/Users/KalleNordehammar/Desktop/Android/log.txt"

内核日志dmesg

1
2
adb shell dmesg
adb shell dmesg | grep -i error

方法一:通过包名过滤

首先,你需要知道应用的包名。然后可以通过下面的命令来过滤日志输出:

1
adb logcat | grep `adb shell pidof -s your.package.name`

这里将 your.package.name 替换为实际的应用包名。这个命令组合首先通过 pidof -s your.package.name 获取指定包名的进程ID,然后将其结果用于 logcat 输出的过滤。

示例:可以将上述结合

1
adb logcat *:D | grep `adb shell pidof -s com.hansong.primarelinkhd`

方法二:通过进程ID过滤

如果你已经知道了目标应用的进程ID(PID),可以直接用它来过滤日志:

1
adb logcat --pid=<PID>

<PID> 替换成你想要跟踪的实际进程ID。这是查看特定进程日志最直接的方法。

方法三:使用过滤器

  1. 基本命令

    • 只需在终端或命令提示符中输入 adb logcat 即可开始查看设备上的实时日志输出。
  2. 过滤日志级别

    • 日志信息有不同的级别:V(Verbose)、D(Debug)、I(Info)、W(Warning)、E(Error)、F(Fatal)、S(Silent)。可以通过指定日志级别来过滤输出的信息。
    • 例如,只查看错误和致命级别的日志可以使用:adb logcat *:E
  3. 清除日志缓冲区

    • 使用 adb logcat -c 命令可以清除设备上的日志缓冲区。
  4. 查看特定标签的日志

    • 可以通过 -s 选项加上 TAG 来筛选特定应用或服务的日志输出。例如:adb logcat -s MyApplicationTag
  5. 格式化输出

    • 使用 -v 选项可以选择不同的输出格式,如 timethreadlong 等等。例如,要添加时间戳到日志行中,可以使用:adb logcat -v time
  6. 重定向输出

    • 可以将 adb logcat 的输出重定向到一个文件中以便后续分析:adb logcat > my_logcat.txt
  7. 退出实时日志模式

    • 在实时查看日志时,可以按 Ctrl+C 来退出并停止日志抓取。