Android日志系统提供了记录和查看系统调试信息的功能。日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过logcat命令来查看和使用.

在使用logcat之前,请确保手机的USB调试模式已经开启,可以通过"Setting->Application->Development->USB debugging"来开启。
logcat本身是android的shell的一个命令,你可以通过“adb shell”进入shell后执行logcat命令,也可以通过"adb logcat"直接运行。
语法:
[adb] logcat [<option>] ... [<filter-spec>] ...
选项:
-b <buffer> 指定要查看的日志缓冲区,可以是system,events ,radio,main . 默认值是system和main 。
-c 清楚屏幕上的日志. 
-d 输出日志到屏幕上. 
-f <filename> 指定输出日志信息的<filename> ,默认是stdout . 
-g 输出指定的日志缓冲区,输出后退出. 
-n <count> 设置日志的最大数目<count> .,默认值是4,需要和 -r 选项一起使用。 
-r <kbytes> 每<kbytes> 时输出日志,默认值为16,需要和-f 选项一起使用. 
-s 设置默认的过滤级别为silent. 
-v <format> 设置日志输入格式,默认的是brief 格式,要知道更多的支持的格式,参看Controlling Log Output 
参数<filter-spec>

参数<filter-spec>用于对某类的tag的日志输出进行过滤。每一个输出的Android日志信息都有一个tag和它的优先级.

日志的标签是系统部件原始信息的一个简要的标志。这个tag就是Log.i,Log.d,Log.i,Log.w,Log.e,Log.wtf系列函数中的tag.
对于System.out.print系列函数所对于的tag,其实就是"System.out"
<filter-spec>以“tag:priority”的形式来对日志输出进行过滤的
优先级priority有以下几种,按照从低到高顺利排列如下:
V — Verbose (lowest priority) 对应于Log.i()系列函数
D — Debug 对应于Log.d()系列函数
I — Info 对应于Log.i()系列函数
W — Warning 对应于Log.w()系列函数
E — Error 对应于Log.e()系列函数
F — Fatal 对应于Log.wtf()系列函数
S — Silent (highest priority, on which nothing s ever printed)
在运行logcat的时候在前两列的信息中你就可以看到 logcat 的标签列表和优先级别,它是这样标出的:<priority>/<tag> .
<filter-spec>中的优先级是指显示该优先级即其以上优先级得日志。比如对于robin:D表示显示tag为robin的所有Debug及其以上优先级的日志。<filter-spec>只是的针对某类的tag的日志进行过滤,如果有多个针对同一个tag的过滤的话,以最后一个为准。另外对于tag,可以使用通配符。对于在tag中没有使用统配符的<filter-spec>,我称它为显式的日志过滤器;而对于在tag中使用统配符的,我称它它为隐式的日志过滤器。如果这两种过滤器有对着同一个tag的过滤的话,以显示的日志过滤器为准。如果是同一种的话(显式/隐式),以后一个为准。
因为<filter-spec>只是指明了对某一类tag应该进行如何过滤,它没说明的其他tag,将采用系统默认的方式(*:V),即全部输出。我们可以通过选项"-s"来设置<filter-spec>中没有说明的tag来都不输出,相当于"*.S"
实例1:
adb logcat -s robin:i
这样将显现tag为robin的Info及以上优先级的所有的日志。该命令等同于adb logcat robin:i *:S
-b 选项
该选项用于指定要操作的日志缓冲区,可以是system,events ,radio,main .它们分别对应/dev/log文件夹下的system,events ,radio,main日志文件 。系统默认的是system和main 。该选项可以出现多次,以指定多个日志缓冲去。
比如:
adb logcat -b system -b main -b events -b radio -s robin:i
日志输出的开头几行说明了你当前查看的哪些日志缓冲区,比如上面的语句的前几行就是:
--------- beginning of /dev/log/radio
--------- beginning of /dev/log/events
--------- beginning of /dev/log/system
--------- beginning of /dev/log/main
其实“adb logcat -s robin:i”相当于“adb logcat -b system -b main -s robin:i”。我们的Log.i,Log.d,Log.i,Log.w,Log.e,Log.wtf系列函数及System.out.print系列函数以及System.erro.print系列都输出到了main缓冲区。因此我们一般用默认的就足够了。
events缓冲区对应的日志文件/system/etc/event-log-tags,使用android.util.EventLog生成的日志就输出到该缓冲区。
android.database.sqlite.SQLiteDatabase的logTimeStat()函数就是使用EventLog来进行日志输出的
-c 选项
该选项用于清空你所指定的日志缓冲区。应该就是清除其对应的日志文件
-s 选项
该选项将把tag的默认过滤级别设置为silent,这样tag默认就不显示。系统把tag的默认过滤级别是设置为Verbose,这样其tag默认就是要显示的。
-f 选项

该选项指定输出日志信息的<filename> ,默认是stdout . 但是这里的文件是指android系统上的文件。如果我们想把日志输出到本地window系统的话,请采用如下形式的命令:

adb logcat -s robin:i>1.log
这样日志就输出了你的window的当前目录的1.log文件中。
-v 选项
日志信息包括了许多元数据域包括标签和优先级。可以通过-v选项可以用来指定日志的输出格式,以显示出特定的元数据域。
brief — Display priority/tag and PID of originating process (the default format).显示prority/tag,产生日志的进程的id,和日志消息本身。它是日志默认的输出格式。
process — Display PID only.显示priority,产生日志的进程的id,和日志消息本身
tag — Display the priority/tag only.显示prority/tag,和消息本身
thread — Display process:thread and priority/tag only.显示priority,线程和日志消息本身
raw — Display the raw log message, with no other metadata fields.只显示消息本身
time — Display the date, invocation time, priority/tag, and PID of the originating process.显示产生日志的时间,prority/tag,产生日志的进程Id,和日志消息本身。
long — Display all metadata fields and separate messages with a blank lines.显示产生日志的时间,prority/tag,产生日志的进程Id,和日志消息本身。但是日志消息本身另其一行进行显示。每个日志之间空一行。
当启动了logcat ,你可以通过-v 选项来指定输出格式:
[adb] logcat [-v <format>]
实例2:
adb logcat -v time -s robin:v
注意是通过-v 选项来设置输出格式.
 
更多:

Android日志监听工具logcat命令详解(转)的更多相关文章

  1. android EditText监听事件及参数详解

    editText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence ...

  2. Android的logcat命令详解

    前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net        ...

  3. Android Studio系列教程五--Gradle命令详解与导入第三方包

    Android Studio系列教程五--Gradle命令详解与导入第三方包 2015 年 01 月 05 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://s ...

  4. Protobuf 文件生成工具 Prototool 命令详解

    Protobuf 文件生成工具 Prototool 命令详解 简介 Prototool 是 Protobuf 文件的生成工具, 目前支持go, php, java, c#, object c 五种语言 ...

  5. Android logcat命令详解

    一.logcat命令介绍 1.android log系统 2.logcat介绍 logcat是android中的一个命令行工具,可以用于得到程序的log信息 log类是一个日志类,可以在代码中使用lo ...

  6. logcat命令详解【二】

    eclipse 自带的 LogCat 工具太垃圾了, 开始用 adb logcat 在终端查看日志; 1. 解析 adb logcat 的帮助信息 在命令行中输入 adb logcat --help  ...

  7. oracle监听(lsnrctl)详解解读

    (总结)Oracle监听服务lsnrctl参数及查询状态详解   lsnrctl命令常用参数详解: lsnrctlstart启动指定的监听器 stop关闭指定的监听器 status显示监听器的状态.s ...

  8. appium---adb logcat 命令详解

    我们在做app测试的过程中,肯定会遇到需要抓取日志问题,这几天安静也遇到了此问题,后台日志生成的太多了,保存本地了吧,设备多没有这么USB,通过wifi连接又太麻烦,你说这怎么是好?不要着急,我们往下 ...

  9. logcat命令详解【一】

    Android日志系统提供了记录和查看系统调试信息的功能.日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过logcat命令来查看和使用. 在使用logcat之前,请确保手机的USB调试 ...

随机推荐

  1. Webpack按需加载一切皆模块

    前言 在学习 Webpack 之前,我们需要了解一个概念:模块. 何为模块? 如果你曾学过 Java , C# 之类的语言,一定会知道 Java 中的 import 或 C# 中的 using 吧? ...

  2. 【LOJ】#2886. 「APIO2015」巴厘岛的雕塑 Bali Sculptures

    题解 感觉自己通过刷水题混LOJ刷题量非常成功 首先是二进制枚举位,判是否合法 要写两个solve不是很开心,\(A\)不为1的直接记录状态\(f[i][j]\)为能否到达前\(i\)个分成\(j\) ...

  3. 【LOJ】#2082. 「JSOI2016」炸弹攻击 2

    题解 想到n3发现思路有点卡住了 对于每个发射塔把激光塔和敌人按照极角排序,对于一个激光塔,和它转角不超过pi的激光塔中间夹的敌人总和就是答案 记录前缀和,用two-Points扫一下就行 代码 #i ...

  4. 016 jquery中html与val得到使用

    1.属性操作 2.设置html . 3.程序(关于html) <!DOCTYPE html> <html> <head> <meta charset=&quo ...

  5. 在Win10下搭建web服务器,使用本机IP不能访问,但是使用localhos或127.0.0.1可以正常访问的解决办法

    最近在在Win10下搭建web服务器,发现通过windows自带的浏览器win10 edge浏览器使用本机IP不能放问,但是使用localhos或127.0.0.1可以正常访问, 后来无意发现,使用w ...

  6. linux学习笔记-13.进程控制

    1.查看用户最近登录情况 lastlastlog 2.查看硬盘使用情况 df 3.查看文件大小 du 4.查看内存使用情况 free 5.查看文件系统 /proc 6.查看日志 ls /var/log ...

  7. Java 内存模型 ,一篇就够了!

    Java 虚拟机   我们都知道 Java 语言的可以跨平台的,这其中的核心是因为存在 Java 虚拟机这个玩意.虚拟机,顾名思义就是虚拟的机器,这不是真实存在的硬件,但是却可以和不同的底层平台进行交 ...

  8. Outdated Kotlin Runtime

    你的 kotlin 运行时版本 在 1.1.2库中 是 1.1.2 然而插件版本是 1.1.4 . 运行时库 应该被更新,避免兼容问题. Outdated Kotlin Runtime Your ve ...

  9. 8.9 正睿暑期集训营 Day6

    目录 2018.8.9 正睿暑期集训营 Day6 A 萌新拆塔(状压DP) B 奇迹暖暖 C 风花雪月(DP) 考试代码 A B C 2018.8.9 正睿暑期集训营 Day6 时间:2.5h(实际) ...

  10. 简单单层bp神经网络

    单层bp神经网络是解决线性可回归问题的. 该代码是论文:https://medium.com/technology-invention-and-more/how-to-build-a-simple-n ...