打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
logcat

用 logcat 命令来查看 android系统日志缓冲区的内容

一、在 Java C 语言中输出日志:
1) Java
代码在程序中输出日志, 使用 android.util.Log 类的以下 5 个方法:
   Log.v()
Log.d()Log.i()Log.w()Log.e()
  
分对应 VerboseDebugINFOWarnError 的首字母。
  
例如:Log.i( "::函数名", "日期_时间_源码文件名_行号_日志信息内容");
2) C
代码在程序中输出日志,使用 log API 函数:
   __android_log_write(
日志类型宏,日志标签字符串,日志令牌内容字符串);
  
需要:1. Android.mk 中添加LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
  
   2. *.c 中添加 #include
  
   3. 日志类型宏有:
        /^
         * Android log priority values, in ascending priority order.
         ^/
        typedef enum android_LogPriority {
            ANDROID_LOG_UNKNOWN = 0,
            /^ only for SetMinPriority() ^/
            ANDROID_LOG_DEFAULT,
            ANDROID_LOG_VERBOSE,
            ANDROID_LOG_DEBUG,
            ANDROID_LOG_INFO,
            ANDROID_LOG_WARN,
            ANDROID_LOG_ERROR,
            ANDROID_LOG_FATAL,
            /^ only for SetMinPriority(); must be last ^/
            ANDROID_LOG_SILENT,
        } android_LogPriority;
二、logcat 使用方法:
格式:
logcat <
功能选项> | <日志过滤描述>
1) logcat
的功能选项包括:
   -b     
加载一个可使用的环形日志缓冲区,如:radioeventsmain 是默认的。
   -c             
清除所有 log 并退出
   -d             
得到所有log并退出且不阻塞
   -g             
得到环形缓冲区的大小并退出
   -f   
输出日志信息到指定的文件中,默认是标准输出 stdout
   -r []  
设置环形日志缓冲区的kbytes,默认值为16,需要和 -f 选项一起使用
   -n      
设置环形日志缓冲区的最大数目,默认值是4,需要和 -r 选项一起使用
   -s             
设置默认的过滤级别为 Silent,例如指定 '*:S'
   -B             
输出 log 到二进制中。
   -v     
设置 log 的打印格式格式有如下主要7:(不能组合使用)
1. brief   -
显示 日志类型/日志标签 进程ID (默认格式)
  
例如:$ adb logcat -v brief
  
   D/dalvikvm(   96): GC freed 13293 objects / 590664 bytes in 259ms
2. process -
仅显示 进程ID
  
例如:$ adb logcat -v process
  
   D(   96) GC freed 13293 objects / 590664 bytes in 259ms  (dalvikvm)
3. tag     -
仅显示 日志类型 日志标签;
  
例如:$ adb logcat -v tag
           D/dalvikvm: GC freed 13293 objects / 590664 bytes in 259ms
4. thread  -
仅显示 指定 日志类型 、进程ID:线程ID、日志标签;
  
例如:$ adb logcat -v thread
        D(   52:0x3e) GC freed 19465 objects / 919736 bytes in 387ms
        D(   52:0x3e) threadid=15: bogus mon 1+0>0; adjusting
5. raw     -
显示原始日志信息,没有其它元数据字段;
  
例如:$ adb logcat -v raw
        GC freed 19465 objects / 919736 bytes in 387ms
        threadid=15: bogus mon 1+0>0; adjusting
6. time    -
显示日期、调用时间,日志类型/日志标签 进程ID
  
例如:$ adb logcat -v time
   11-25 13:36:00.610 D/dalvikvm(   52): GC freed 19465 objects / 919736 bytes in 387ms
   11-25 13:58:40.650 D/dalvikvm(   52): threadid=15: bogus mon 1+0>0; adjusting
7. long    -
显示全部元数据字段分别用空行隔开;
  
例如:$ adb logcat -v long
   [ 11-25 13:36:00.610    52:0x3e D/dalvikvm ]
   GC freed 19465 objects / 919736 bytes in 387ms
   [ 11-25 13:58:40.650    52:0x3e D/dalvikvm ]
   threadid=15: bogus mon 1+0>0; adjusting
2) logcat
的日志查询常用的有如下几种:
   1.
查看全部系统日志缓冲区的内容
   $ adb logcat
   2.
只输出指定类型的日志
    
日志类型标识符(优先级由低到高排列):
     1. V — Verbose
详细的 <- 最低优先权
     2. D — Debug  
调试
     3. I — Info   
消息
     4. W — Warn   
警告
     5. E — Error  
错误
     6. F — Fatal  
致命的
     7. S — Silent 
无声的 <- 最高优先权

   $ adb logcat *:V
  
注:显示优先级为 Verbose 或更高的日志信息,输出 DebugInfoWarnError 调试信息。
   $ adb logcat *:D
  
注:显示优先级为 Debug 或更高的日志信息,输出 DebugInfoWarnError 调试信息。
   $ adb logcat *:I
  
注:显示优先级为 Info 或更高的日志信息,输出 InfoWarnError 调试信息。
   $ adb logcat *:W
  
注:显示优先级为 Warn 或更高的日志信息,输出 Warn Error 调试信息。
   $ adb logcat *:E
  
注:只输出 Error 调试信息
   3.
只输出指定 类型 标签 的日志
   adb logcat <
日志标签>:<日志类型标识符> <日志标签>:<日志类型标识符> ... *:S
  
注:1. 可以写多个 <日志标签>:<日志类型标识符> 之间用空格分隔;
  
  2. 最后必须是 *:S
  
例如:
   $ logcat dalvikvm:D Checkin:W *:S
   4.
只输出指定 标签 的日志
   adb logcat <
日志标签>:* <日志标签>:* ... *:S
  
注:1. 可以写多个 <日志标签>:<日志类型标识符> 之间用空格分隔;
  
  2. 最后必须是 *:S
  
例如:
   $ adb logcat ActivityManager:* *:S

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Ubuntu 下 使用 adb logcat 显示 Android 日志
Google Android中打印日志
logcat使用
ADB logcat 过滤方法(抓取日志)
Android开发中的logcat工具使用
Android之抓取adb logcat全日志后怎么过滤掉只包含当前app进程的日志(一般抓启动app奔溃日志)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服