首页 > Android logcat命令详解

Android logcat命令详解

一、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 [

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加载一个可使用的日志缓冲区提供查看,默认值是main

4.实例

adb logcat –b radioadb logcat –b systemadb logcat –b eventsadb logcat –b main

三、logcat命令参数

1.参数说明

参数

描述

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

一般长时间输出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 ]

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"

转载于:https://www.cnblogs.com/JianXu/p/5468839.html

更多相关:

  • 全卷积网络(FCN) 1.全卷积神经网络介绍 FCN对图像进行像素级的分类,从而解决了语义级别的图像分割(semantic segmentation)问题。与经典的CNN在卷积层之后使用全连接层得到固定长度的特征向量进行分类(全联接层+softmax输出)不同,FCN可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷积层的fea...

  • printf()函数优点在于可以格式化输出 格式:   %['padding_character][-][width][.precision]type   所有的转换说明都是以%开始,如果想打印一个%符号,必须用%% ;   参数“'padding_character”是可选,它将被用来填充变量直至所指定的宽度,该参...

  • 给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT....这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。 输入格式: 输入在一行中给出一个长度不超过10000的、仅...

  • 给定两个整数A和B,输出从A到B的所有整数以及这些数的和。 输入格式: 输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。 输出格式: 首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按Sum = X的格式输出全部数字的和X。 输入样例:...

  • python面试题目 原文地址:https://www.usblog.cc/blog/post/justzhl/b5cc9a05c7d2 问题一:以下的代码的输出将是什么? 说出你的答案并解释。 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Parent(object):     x...

  • [Mar 31 02:39:34.185] Server {0x2b1d85563700} NOTE: Skipping the current log entry for access.log because its size (9136) exceeds the maximum p...

  • recycle_log_file_num 复用wal文件信息, 优化wal文件的空间分配,减少pagecache中文件元信息的更新开销。 为同事提供了一组rocksdb写优化参数之后有一个疑惑的现象被问到,发现之前的一些代码细节有遗忘情况,同时也发现了这个参数的一些小优化,这里做个总结。 在参数: opts.recycle_lo...

  • 今天的Log信息有的能打有的不能打,甚是奇怪,高了半天明白了,常见的几个问题就不说了,说我这个奇怪的。看下面的内容,那个能打印呢? 1 2 3 4 5 Log.v("交易返回码:log", " "); Log.v("re:log", ""); Log.e("交易返回码:log", ""); Log.e("re:log", "...