`

logcat命令详解

 
阅读更多

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有以下几种,按照从低到高顺利排列如下:
— 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日志文件 。系统默认的是systemmain 。该选项可以出现多次,以指定多个日志缓冲去。
比如:
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.SQLiteDatabaselogTimeStat()函数就是使用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使用详解

    **Android LogCat 使用详解** Android LogCat 是一个强大的调试工具,它用于收集应用程序和其他系统组件的日志信息。LogCat 在 Android 开发过程中扮演着至关重要的角色,帮助开发者追踪错误、定位问题以及理解应用...

    Android最新模拟器菜鸟速参手册加强版

    #### Logcat命令详解 ##### 使用logcat命令 `logcat`命令可以捕获并显示模拟器或设备的日志信息。基本用法如下: ``` adb logcat ``` ##### 过滤日志输出 可以根据标签、优先级等过滤日志输出。例如,只显示错误...

    adb操作命令详解及大全

    标题中提到的“adb操作命令详解及大全”指的是对Android Debug Bridge(简称ADB)这个工具的详细解析,它是一个多功能命令行工具,广泛应用于Android设备的调试和管理。由于Android应用的开发调试经常需要与设备进行...

    Android adb logcat 命令查看日志详细介绍

    在Android开发过程中,调试是必不可少的一个环节,而`adb logcat`命令是开发者最常用的工具之一,用于查看和分析Android设备或模拟器上的系统日志。`logcat`可以帮助我们追踪应用程序的运行状态,捕获错误信息,以及...

    Android-LogCat-tool.zip_-baijiahao_android logcattool_logcat_log

    **Android LogCat 工具详解** 在Android开发中,LogCat是不可或缺的调试利器,它是一个内置的命令行工具,用于收集和显示Android设备或模拟器上的系统日志信息。通过对应用程序、系统服务以及框架组件的日志输出...

    android logcat使用

    #### 五、logcat命令的高级用法 除了基本的日志查看功能外,`logcat`还支持更多的选项和参数,可以帮助开发者更加高效地管理和查看日志。 ##### 1. 命令选项 - `-f &lt;filename&gt;`:将日志输出到指定文件。 - `-r []...

    Android中的adb命令详解

    ### Android中的adb命令详解 #### 一、adb简介 Android调试桥(adb)是一个功能强大的命令行工具,它能够帮助开发者管理和控制Android设备或模拟器的状态。adb支持多种任务,例如执行shell命令、端口转发、文件...

    adb命令详解--测试工程师必备笔记(建议收藏)

    adb 命令详解 adb 命令是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。下面是 adb 命令的详解: 基本用法 1. 命令语法:adb [-d|-e|-s ] 2. 为命令指定目标设备: * -d:指定...

    adb操作命令详解[收集].pdf

    ### ADB操作命令详解 #### 一、ADB简介 **ADB**(Android Debug Bridge)是一种功能强大的工具,它充当了Android设备与PC之间的桥梁。通过ADB,开发者可以在Eclipse等集成开发环境(IDE)中利用DDMS(Dalvik Debug...

    android模拟器命令详解收集.pdf

    Android 模拟器命令详解收集 Android 模拟器是 Android SDK 自带的一个移动设备模拟器,可以在电脑上运行虚拟设备,模拟除接听和拨打电话外的所有移动设备上的典型功能和行为。 Android 模拟器提供了大量的导航和...

    adb操作命令详解.doc

    adb 操作命令详解 Android Debug Bridge(ADB)是一种强大的命令行工具,用于管理和调试 Android 设备。通过 ADB,我们可以在 Eclipse 中调试 Android 程序,安装软件、升级系统、运行 shell 命令等等。下面是 ADB ...

    解决华为系列手机调试时不能打印Logcat日志信息

    - 打开命令提示符或终端,输入`adb devices`查看是否能识别到已连接的设备。 - 如果没有识别到设备,尝试重启ADB服务或重新安装ADB驱动。 3. **设置手机开发者选项**: - 进入手机的“设置” -&gt; “关于手机” -&gt;...

    Android开发中LogCat工具的使用

    **Android开发中LogCat工具的使用详解** 在Android开发过程中,LogCat是一个不可或缺的调试工具。它是Android系统提供的一种命令行工具,用于收集应用程序和其他系统组件的log信息,帮助开发者跟踪程序运行状态,...

    adb操作命令详解.pdf

    ### ADB操作命令详解 #### 一、ADB简介 **ADB**(Android Debug Bridge)是一种功能强大的工具,它充当了Android设备与PC之间的桥梁。通过ADB,开发人员能够在Eclipse等集成开发环境(IDE)中方便地调试Android...

    adb工具操作命令详解

    除了上述基本命令,adb还有许多其他功能,如监控设备日志(`adb logcat`)、启动应用(`adb shell am start`)、抓取屏幕截图(`adb exec-out screencap -p &gt; screenshot.png`)等。掌握adb的使用能极大地提升Android开发...

    android模拟器命令详解[借鉴].pdf

    《Android模拟器命令详解》 Android模拟器是Android SDK中不可或缺的一部分,它为开发者提供了一个在计算机上模拟Android设备的功能,使得无需实体设备就能进行应用的预览、开发和测试。模拟器能模拟大部分移动设备...

    adb命令详解

    总的来说,adb命令详解涵盖了从基础的设备连接、应用管理到高级的系统调试、数据备份等多个方面,是Android开发不可或缺的工具。熟练掌握adb命令,能极大地提升开发和调试的效率。通过不断的实践和探索,开发者可以...

Global site tag (gtag.js) - Google Analytics