logcat命令詳解

转载 2013年12月02日 13:34:04
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 選項來設置輸出格式.

apache http.conf详解

ServerRoot “/usr/local“        ServerRoot用于指定守护进程httpd的运行目录,httpd在启动之后将自动将进程的当前目录改变为这个目录,因此如果设置文件中...
  • victor1129
  • victor1129
  • 2013年09月22日 10:17
  • 576

八大排序算法详解(一)

学习算法:八大排序算法详解(一)     相信很多人在学习算法的过程中,首先接触到的就是所谓的排序算法和查找算法,本文介绍了算法基础中的8种排序算法,权当学习笔记。文章中引用到了一些其他的博文中的内...
  • ranlinjun
  • ranlinjun
  • 2018年01月05日 22:30
  • 27

Buildroot 用户指南

第一章   关于Buildroot        Buildroot是一个包含Makefile和修补程序【patch】的集合,这个集合可以使你很容易的为你的目标构建交叉工具链【cross-compi...
  • chinaeran
  • chinaeran
  • 2015年01月09日 15:09
  • 1316

buildroot使用详解

buildroot使用详解  卧似长剑  2016-11-13  原文 为什么要使用buildroot? (文件系统搭建,强烈建议直接用buildroot,官网[http://...
  • d_xueliang
  • d_xueliang
  • 2017年06月27日 21:16
  • 265

logcat 命令行用法

http://blog.csdn.net/tumuzhuanjia/article/details/39555445 -- "-s"选项 : 设置输出日志的标签, 只显示该标签的日志; --"-...
  • adaptiver
  • adaptiver
  • 2016年09月20日 15:33
  • 938

Ruby 字符串 詳解

Ruby 字符串 Ruby 中的 String 对象存储并操作一个或多个字节的任意序列,通常表示那些代表人类语言的字符。 最简单的字符串是括在单引号(单引号字符)内。在引号标记内的文本是字符串的值: ...
  • laxse
  • laxse
  • 2016年10月18日 00:12
  • 157

android logcat 命令详解 和 adb 常用命令

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

小马哥---高仿三星n9100刷机 n910f 拆机主板详图与开机界面图 多图展示 版本众多

高仿三星n9100机型版本较多 此次展示的是6582芯片 主板中壳W9228  拆机主板型号9228 显示型号为N910F 芯片为6582芯片 系统版本为4.4.4 上图...
  • u011283906
  • u011283906
  • 2015年04月26日 11:21
  • 1766

FAQ详解“Meltdown和Spectre”问题,接踵而来的“Skyfall和Solace”是否仅是骗局?

在Google公司安全团队Project Zero披露Intel处理器Meltdown(熔毁) 和Spectre(幽灵)漏洞后,该漏洞在2018年初震动了计算机世界。现在据说还有两个漏洞:Skyfal...
  • BtB5e6Nsu1g511Eg5XEg
  • BtB5e6Nsu1g511Eg5XEg
  • 2018年01月20日 00:00
  • 105

window.open 詳解

一、window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+ 二、基本语法: window.open(pageURL,name,...
  • run0307
  • run0307
  • 2008年05月13日 16:59
  • 286
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:logcat命令詳解
举报原因:
原因补充:

(最多只允许输入30个字)