首页 > 其他分享 >Android logcat命令详解

Android logcat命令详解

时间:2022-08-31 14:56:52浏览次数:90  
标签:输出 logcat log 详解 adb 缓冲区 Android 日志

一、logcat命令介绍

1.android log系统

image

 

2.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}

3.logcat命令格式

语法格式:

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

PC端使用:

adb logcat

shell模式下使用:

logcat

二、logcat缓冲区

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.缓冲区模型

image

3.获取缓冲区命令

参数

描述

-b<buffer> 加载一个可使用的日志缓冲区提供查看,默认值是main

4.实例

复制代码
adb logcat –b radio

adb logcat –b system

adb logcat –b events

adb logcat –b main
复制代码

三、logcat命令参数

1.参数说明

参数

描述

-b <buffer> 加载一个可使用的日志缓冲区供查看,比如event和radio。默认值是main
-c 清除缓冲区中的全部日志并退出(清除完后可以使用-g查看缓冲区)
-d 将缓冲区的log转存到屏幕中然后退出
-f <filename> 将log输出到指定的文件中<文件名>.默认为标准输出(stdout)
-g 打印日志缓冲区的大小并退出
-n <count> 设置日志的最大数目<count>,默认值是4,需要和-r选项一起使用
-r <kbytes> 没<kbytes>时输出日志,默认值是16,需要和-f选项一起使用
-s 设置过滤器
-v <format> 设置输出格式的日志消息。默认是短暂的格式。支持的格式列表

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

2.实例

复制代码
//将缓冲区的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格式化输出

1.参数说明

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

格式

说明

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

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

[adb] logcat [-v <format>]

adb logcat –v thread

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

2.例子

image

五、logcat优先级

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"

标签:输出,logcat,log,详解,adb,缓冲区,Android,日志
From: https://www.cnblogs.com/lutrix-lc/p/16643077.html

相关文章

  • 递归详解
    递归详解在计算机科学领域,递归是用于处理一类具有相同子问题处理方式的问题;是数学归纳法,数学递推公式在计算机中的应用Thepowerofrecursionevidentlyliesin......
  • k8s hpa扩展伸缩详解
    k8shpa扩展伸缩详解首先来说一下pod资源的分配: limits:申请内存最大值,超过这个值就会触发oom requests:申请内存最小值(此处个人将他理解为pod预分配内存。为什么这样......
  • 工作笔记之Android记录
    工作笔记工作笔记用于记录Android开发过程中遇到的疑难点和难以解决的点,特此记录。Kotlin的版本关系kotlin和room的使用需要进行调整,如kotlin1.7.10room2.5.0和kotli......
  • msf攻击android
    msf攻击android[1]1.msf生成androidapk文件msfvenom-pandroid/meterpreter/reverse_tcplhost=<ip地址>lport=<端口>R>test.apk-pandroid/meterpreter/revers......
  • go语言函数详解-01
    go语言函数声明每一次函数在调用时都必须按照声明顺序为所有参数提供实参(参数值),在函数调用时,Go语言没有默认参数值,也没有任何方法可以通过参数名指定形参,因此形参和返回值......
  • 开源交流丨任务or实例 详解大数据DAG调度系统Taier任务调度
    课件获取:关注公众号“数栈研习社”,后台私信“Taier”获得直播课件视频回放:点击这里ChunJun开源项目地址:github丨gitee喜欢我们的项目给我们点个__STAR!STAR!!STAR!!!(重......
  • MySQL 覆盖索引详解
    1.什么是索引?索引(在MySQL中也叫“键key”)是存储引擎快速找到记录的一种数据结构,通俗来说类似书本的目录,这个比方虽然被用的最多但是也是最恰如其当的,在查询书本中的某......
  • kafka详解(一)--kafka是什么及怎么用
    kafka是什么在回答这个问题之前,我们需要先了解另一个东西--eventstreaming。什么是eventstreaming我觉得,eventstreaming是一个动态的概念,它描述了一个个event("s......
  • ps命令详解
    ps命令详解-wangkangluo1-博客园 https://www.cnblogs.com/wangkangluo1/archive/2011/09/23/2185938.html名称:ps使用权限:所有使用者使用方式:ps[options][--help]......
  • explicit关键字详解
    https://blog.csdn.net/l2563898960/article/details/97769569    ......