logcat命令详解
⽇志消息包含⼀个元数据字段,除了标签和优先级,您可以修改输出显示⼀个特定的元数据字段格式的消息。三个参数连⽤,这样当⼀个⽂件⽇志输出满了之后可以⻢上在另⼀个中进⾏输出。缓冲区主要给系统组件使⽤,⼀般的应⽤不需要关⼼,应⽤的。选项来指定⼀个⽀持的输出格式。清除缓冲区中的全部⽇志并退出(清除完后可以使。为了减少不想要⽇志的输出,可以建⽴⼀个过滤器。中的⼀个命令⾏⼯具,可以⽤于得到程序的。加载⼀个可使⽤
·
一、android log系统
1.1 logcat介绍
logcat是android中的⼀个命令⾏⼯具,可以⽤于得到程序的log信息
log类是⼀个⽇志类,可以在代码中使⽤logcat打印出消息
常见的日志记录方法包括:
⽅法
|
描述
|
v(String,String) (vervbose)
|
显示全部信息 |
d(String,String)(debug)
|
显示调试信息
|
i(String,String)(information)
|
显示⼀般信息
|
w(String,String)(waning)
|
显示警告信息
|
e(String,String)(error)
|
显示错误信息
|
例如:
//开发过程中获取log
Log.i("MyActivity","MyClass.getView() - get item number"+position);
//adb获取log
adb logcat
adb logcat输出的⽇志格式如下:
I/ActivityManager( 1754): Waited long enough for: ServiceRecord{2b24178c u0
com.google.android.gms/.checkin.CheckinService}
1.2.logcat命令格式
语法格式:
[adb] logcat [] … [] …
PC端使⽤:adb logcat
shell模式下使⽤:logcat
二、logcat缓冲区
2.1 缓冲区介绍
android log输出量巨⼤,特别是通信系统的log,因此,android把log输出到不同的缓冲区中,⽬前定义了
四个log缓冲区:
1)Radio:输出通信系统的log
2)System:输出系统组件的log
3)Event:输出event模块的log
4)Main:所有java层的log,遗迹不属于上⾯3层的log
缓冲区主要给系统组件使⽤,⼀般的应⽤不需要关⼼,应⽤的log都输出到main缓冲区中
默认log输出(不指定缓冲区的情况下)是输出System和Main缓冲区的log
2.2 缓冲区模型

三、logcat命令参数
参数 | 描述 |
-b |
加载⼀个可使⽤的⽇志缓冲区供查看,⽐如event
和radio。默认值是main
|
-c |
清除缓冲区中的全部⽇志并退出(清除完后可以使
⽤-g查看缓冲区)
|
-d |
将缓冲区的log转存到屏幕中然后退出
|
-f |
将log输出到指定的⽂件中<⽂件名>.默认为标准输
出(stdout)
|
-g |
打印⽇志缓冲区的⼤⼩并退出
|
-n |
设置⽇志的最⼤数⽬,默认值是4,需要和-r选项
⼀起使⽤
|
-r |
每时输出⽇志,默认值是16,需要和-f选项⼀起使
⽤
|
-s |
设置过滤器
|
-v |
设置输出格式的⽇志消息。默认是短暂的格式。⽀
持的格式列表
|
⼀般⻓时间输出log的话建议-f,-n,-r三个参数连⽤,这样当⼀个⽂件⽇志输出满了之后可以⻢上在另⼀个中进⾏输出
3.1 实例
//将缓冲区的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
四、logcat格式化输出
4.1 参数说明
⽇志消息包含⼀个元数据字段,除了标签和优先级,您可以修改输出显示⼀个特定的元数据字段格式的消息。为此,您使⽤-v选项来指定⼀个⽀持的输出格式。⼀下为⽀持的格式:
格式 | 说明 |
brief
|
显示优先级/标记和过程的PID发出的消息(默认格
式)
|
process
|
只显示PID
|
tag
|
只显示优先级/标记
|
raw
|
显示原始的⽇志消息,没有其他元数据字段
|
time
|
调⽤显示⽇期、时间、优先级/标签和过程的PID发
出消息
|
threadtime
|
调⽤显示⽇期、时间、优先级、标签遗迹PID TID
线程发出的消息
|
long
|
显示所有元数据字段与空⽩⾏和单独的消息
|
当logcat开始,指定想要输出格式-v选项:
[adb] logcat [-v ]
adb logcat –v thread
只能指定⼀个输出格式-v
4.2 例⼦

五、logcat优先级
5.1 优先级语法
优先级使⽤字符标识,⼀下优先级从低到⾼
V –Verbose(最低优先级)
D – Debug
I – Info
W – Warning
E – Error
F – Fatal
S – Silent
为了减少不想要⽇志的输出,可以建⽴⼀个过滤器
过滤语法:tag:priority
//过滤TAG为ActivityManager输出级别⼤于I的⽇志与TAG为MyApp输出级别⼤于D的⽇志
adb logcat ActivityManager:I My App:D *:S
adb logcat *:W
设置过滤级别为W以上
如果⽤的⽐较多可以设置环境变量:export ANDROID_LOG_TAGS="ActivityManager:I MyApp:D*:S"
更多推荐
所有评论(0)