使用 logcat

        查看和跟踪系统日志缓冲区的命令 logcat


[
adb
]
 logcat 
[<
option
>]
 ...
 [<
filter
-
spec
>]
 ...


Listing of logcat Command Options

logcat


$ adb logcat


    如果是在远程 shell中可直接使用命令:


# logcat


 

  过滤日志输出

       

标记是一个简短 的字符串,用于标识原始消息的来源 ( 例如 "View" 来源于显示系统 )

V — 明细 ( 最低优先级 )

D

I

W

E

F

S — 无记载 ( 最高优先级,没有什么会被记载 )

logcat ,可以获得一个系统中使用的标记和优先级的列表,观察列表的 前两列,给出的格式是 <priority>/<tag>

I ”,标记是“ ActivityManager


I
/
ActivityManager
(
 585
):
 Starting
 activity
:
 Intent
 {
 action
=
android
.
intent
.
action
...}


-

tag:priority ... ,其中 tag 是标记, priority

ActivityManager ”并且优先级大于等于“ Info ”和标记为“ MyApp ”并且优先级大于等于“ Debug


adb logcat ActivityManager : I MyApp : D *: S


    上述表达式最后的 *:S 用于设置所有标记的日志优先级为 S ,这样可以确保仅有标记为“ View”(译者注:应该为 ActivityManager,原文可能是笔误)和“ MyApp”的日志被输出,使用 *:S 是可以确保输出符合指定的过滤器设置的一种推荐的方式,这样 过滤器就成为了日志输出的“白名单”。

warning


adb logcat *: W


    如果在开发用电脑上运行 logcat ( 相对于运行运程 shell 而言 ) ,也可以通过 ANDROID_LOG_TAGS 环境变量设置默认的过滤器表达式:


export ANDROID_LOG_TAGS = "ActivityManager:I MyApp:D *:S"


shell 或是使用 adb shell logcat 命令运行 logcatANDROID_LOG_TAGS 不会导出到模拟器或手机设备上。

 

  控制日志格式

        日志消息在标记和优先级之外还有很多元数据字段,这些字段可 以通过修改输出格式来控制输出结果, -v 选项加上下面列出的内容可以控制输出字段:

brief

process

tag — 仅显示优先级 /

thread — 仅显示进程:线程和优先级 /

raw

time — 显 示日期,调用时间,优先级 / 标记, PID

long

  可以使用 -v 启动 logcat 来控制日志格式:


[
adb
]
 logcat 
[-
v 
<
format
>]


  例如使用 thread 输出格 式:


adb logcat 
-
v thread


  注意只能在 -v 选项中指定一种格式。

 

  Viewing Alternative Log Buffers

        Android 日 志系统为日志消息保持了多个循环缓冲区,而且不是所有的消息都被发送到默认缓冲区,要想查看这些附加的缓冲区,可以使用 -b 选项,以下是可以指定的缓冲区:

radio — 查看包含在无线 /

events

main — 查看主缓冲区 ( 默认缓冲区 )

- b


[
adb
]
 logcat 
[-
b 
<
buffer
>]


  例如查看 radio缓冲区:


adb logcat 
-
b radio


 

adb logcat简单举例:

1、导入日志到sd卡