adb logcat 查看日志

使用 logcat 命令
查看和跟踪系统日志缓冲区的命令logcat的一般用法是:

[adb] logcat [

调用方式在终端窗口中输入:

adb logcat

//如果指定设备
adb -s [设备ID] logcat

1. 解析 adb logcat 的 帮助信息

//输入命令
adb logcat -help
//输出结果
logcat: invalid option -- h
Unrecognized Option
Usage: logcat [options] [filterspecs]
options include:
  -s              Set default filter to silent.
                  Like specifying filterspec '*:s'
  -f    Log to file. Default to stdout
  -r []   Rotate log every kbytes. (16 if unspecified). Requires -f
  -n       Sets max number of rotated logs to , default 4
  -v      Sets the log print format, where  is one of:

                  brief process tag thread raw time threadtime long

  -c              clear (flush) the entire log and exit
  -d              dump the log and then exit (don't block)
  -t       print only the most recent  lines (implies -d)
  -t '

选项解析 :

  • "-s"选项 : 设置输出日志的标签, 只显示该标签的日志;
  • "-f"选项 : 将日志输出到文件, 默认输出到标准输出流中, -f 参数执行不成功;
  • "-r"选项 : 按照每千字节输出日志, 需要 -f 参数, 不过这个命令没有执行成功;
  • "-n"选项 : 设置日志输出的最大数目, 需要 -r 参数, 这个执行 感觉 跟 adb logcat 效果一样;
  • "-v"选项 : 设置日志的输出格式, 注意只能设置一项;
  • "-c"选项 : 清空所有的日志缓存信息;
  • "-d"选项 : 将缓存的日志输出到屏幕上, 并且不会阻塞;
  • "-t"选项 : 输出最近的几行日志, 输出完退出, 不阻塞;
  • "-g"选项 : 查看日志缓冲区信息;
  • "-b"选项 : 加载一个日志缓冲区, 默认是 main, 下面详解;
  • "-B"选项 : 以二进制形式输出日志;

** Log 优先级是下面的字符,顺序是从低到高 **:

  • V — 明细 (最低优先级)
  • D — 调试
  • I — 信息
  • W — 警告
  • E — 错误
  • F — 严重错误
  • S — 无记载 (最高优先级,没有什么会被记载)

输出指定标签内容

octopus@octopus:~$ adb logcat -s System.out  
--------- beginning of /dev/log/system  
--------- beginning of /dev/log/main  
I/System.out(22930): GSM -91  
I/System.out(22930): SignalStrength issssssssss : -91  
I/System.out(22930): GSM -91  
I/System.out(22930): SignalStrength issssssssss : -91  
I/System.out(22930): Supervisor Thread  
I/System.out(22930): Got run mode 

输出日志信息到文件

octopus@octopus:~$ adb logcat -f /sdcard/log.txt

****过滤指定等级日志****


// 输出 显示 Error 以上级别的日志
octopus@octopus:~$ adb logcat *:E  
  
Note: log switch off, only log_main and log_events will have logs!  
--------- beginning of /dev/log/main  
E/WifiHW  (  441): wifi_send_command : SCAN_RESULTS ; interface index=0;  
E/WifiHW  (  441): wifi_send_command : AP_SCAN 1 ; interface index=0;  
E/WifiHW  (  441): wifi_send_command : SCAN_RESULTS ; interface index=0;  
E/dalvikvm(  756): GC_CONCURRENT freed 1809K, 27% free 19489K/26695K, paused 16ms+5ms, total 109ms  
E/WifiHW  (  441): wifi_send_command : SCAN ; interface index=0;  
E/WifiHW  (  441): wifi_send_command : AP_SCAN 1 ; interface index=0;  
E/WifiHW  (  441): wifi_send_command : SCAN_RESULTS ; interface index=0;  
E/dalvikvm(  756): GC_CONCURRENT freed 1820K, 27% free 19490K/26695K, paused 16ms+3ms, total 102ms  
E/WifiHW  (  441): wifi_send_command : AP_SCAN 1 ; interface index=0;  
E/WifiHW  (  441): wifi_send_command : SCAN_RESULTS ; interface index=0;  

过滤指定标签等级日志 :

// **命令含义** : 输出10条日志, 日志是 标签为 WifiHW, 并且优先级 Debug(调试) 等级以上的级别的日志;
//**注意 *:S** : 如果没有 *S 就会输出错误,*S 代表白名单;

octopus@octopus:~$ adb logcat 10 WifiHW:D *:S  
  
Note: log switch off, only log_main and log_events will have logs!  
--------- beginning of /dev/log/main  
E/WifiHW  (  441): wifi_send_command : SCAN_RESULTS ; interface index=0;  
E/WifiHW  (  441): wifi_send_command : AP_SCAN 1 ; interface index=0;  
E/WifiHW  (  441): wifi_send_command : SCAN_RESULTS ; interface index=0;  
E/WifiHW  (  441): wifi_send_command : AP_SCAN 1 ; interface index=0;  
E/WifiHW  (  441): wifi_send_command : SCAN_RESULTS ; interface index=0;  
E/WifiHW  (  441): wifi_send_command : AP_SCAN 1 ; interface index=0;  
E/WifiHW  (  441): wifi_send_command : SCAN_RESULTS ; interface index=0;  

可以同时设置多个过滤器

使用 命令:
adb logcat WifiHW:D dalvikvm:I *:S

输出 WifiHW 标签 的 Debug 以上级别 和 dalvikvm 标签的 Info 以上级别的日志;

你可能感兴趣的:(adb logcat 查看日志)