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"
  • 31
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哈~~哈~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值