【logcat】的使用

一、介绍

logcat是android中的一个命令行工具,可以用于得到程序的log信息。log类是一个日志类,可以在代码中使用logcat打印出消息

二、logcat的命令格式

语法格式:

[adb] logcat [<option>] … [<filter – spec>] …

PC端使用:

adb logcat

shell模式下使用:

logcat

三、常用参数介绍

-b <buffer>

加载一个可使用的日志缓冲区供查看,比如event和radio。默认值是main

android log输出量巨大,特别是通信系统的log,因此,android把log输出到不同的缓冲区中,目前定义了四个log缓冲区:

  • radio:输出通信系统的log
  • system:输出系统组件的log
  • events:输出event模块的log
  • main:所有java层的log,遗迹不属于上面3层的log

缓冲区主要给系统组件使用,一般的应用不需要关心,应用的log都输出到main缓冲区中

默认log输出(不指定缓冲区的情况下)是输出System和Main缓冲区的log

-c 清空日志缓存信息,使用 adb logcat -c 命令, 可以将之前的日志信息清空, 重新开始输出日志信息;
-d 将缓冲区的log转存到屏幕中然后退出, 使用 adb logcat -d 命令, 输出命令, 之后推出命令, 不会进行阻塞;
-f <filename> 将log输出到指定的文件中<文件名>.默认为标准输出(stdout)
-g 打印日志缓冲区的大小并退出
-n <count> 设置日志的最大数目<count>,默认值是4,需要和-r选项一起使用
-r <kbytes> 没<kbytes>时输出日志,默认值是16,需要和-f选项一起使用
-t 输出最近的日志 : 使用 adb logcat -t 5 命令, 可以输出最近的5行日志, 并且不会阻塞
-v 设置日志的输出格式, 注意只能设置一项;以时间的格式将log输出在桌面:adb logcat -v time >C:\Users\z\Desktop\log.txt
-s 设置默认的过滤器, 如 我们想要输出 "System.out" 标签的信息, 就可以使用 adb logcat -s System.out 命令;

一般长时间输出log的话建议-f,-n,-r三个参数连用,这样当一个文件日志输出满了之后可以马上在另一个中进行输出.

四、实例

//将缓冲区的log打印到屏幕并退出
adb logcat -d 
//清除缓冲区log(testCase运行前可以先清除一下)
adb logcat -c
//打印缓冲区大小并退出
adb logcat -g
//输出log
adb logcat -f /data/local/tmp/log.txt -n 10 -r 1

4、logcat格式化输出

  日志消息包含一个元数据字段,除了标签和优先级,您可以修改输出显示一个特定的元数据字段格式的消息。为此,您使用-v选项来指定一个支持的输出格式。以下为支持的格式:  

格式

说明

brief 显示优先级/标记和过程的PID发出的消息(默认格式)
process 只显示PID
tag 只显示优先级/标记
raw 显示原始的日志消息,没有其他元数据字段
time 调用显示日期、时间、优先级/标签和过程的PID发出消息
threadtime 调用显示日期、时间、优先级、标签遗迹PID TID线程发出的消息
long 显示所有元数据字段与空白行和单独的消息

当logcat开始,指定想要输出格式-v选项:

[adb] logcat [-v <format>]

adb logcat –v thread

只能指定一个输出格式-v

六、logcat优先级

优先级使用字符标识,一下优先级从低到高

  • V –Verbose(最低优先级)
  • D – Debug
  • I – Info
  • W – Warning
  • E – Error
  • F – Fatal
  • S – Silent

实例:

adb logcat *:W    //设置过滤级别为W以上
如果用的比较多可以设置环境变量:

export ANDROID_LOG_TAGS="ActivityManager:I MyApp:D*:S"

  

  

 

posted @ 2022-10-19 15:51  轻轻的吻  阅读(263)  评论(0编辑  收藏  举报