Android 中Logcat的使用
来源:互联网 发布:网络女主播视频 编辑:程序博客网 时间:2024/06/01 10:26
Logcat过滤及常见用法整理
Usage: logcat [options] [filterspecs]
options include:
-s Set default filter to silent.
Like specifying filterspec '*:s'
-f <filename> Log to file. Default to stdout
-r [<kbytes>] Rotate log every kbytes. (16 if unspecified). Requires -f
-n <count> Sets max number of rotated logs to <count>, default 4
-M <1,0> Set enable copy(Move) the log to oms_log_path
-v <format> Sets the log print format, where <format> is one of:
brief process tag thread raw time threadtime long
-c clear (flush) the entire log and exit
-d dump the log and then exit (don't block)
-g get the size of the log's ring buffer and exit
-b <buffer> request alternate ring buffer
('main' (default), 'radio', 'events')
-B output the log in binary
filterspecs are a series of
<tag>[:priority]
where <tag> is a log component tag (or * for all) and priority is:
V Verbose
D Debug
I Info
W Warn
E Error
F Fatal
S Silent (supress all output)
'*' means '*:d' and <tag> by itself means <tag>:v
If not specified on the commandline, filterspec is set from ANDROID_LOG_TAGS.
If no filterspec is found, filter defaults to '*:I'
If not specified with -v, format is set from ANDROID_PRINTF_LOG
or defaults to "brief"
示例:
看radio log
logcat -b radio
I/RILC ( 46): 39 0d 0a
I/RILC ( 46): AT[0]< +ECIND: 1,16,99
I/RILC ( 46): AT[0]< +ECSQ: 16,99
I/RILC ( 46): <<<< pCh[0]...
I/RILC ( 46): 0d 0a 2b 45 43 49 4e 44 3a 20 31 2c 31 37 2c 39 39 0d 0a 0d 0a 2b 45 43 53 51 3a 20 31 37 2c 39
I/RILC ( 46): 39 0d 0a
I/RILC ( 46): AT[0]< +ECIND: 1,17,99
I/RILC ( 46): AT[0]< +ECSQ: 17,99
查看warning以上的log
logcat *:w
E/SensorManager( 102): smjni------jni data_open
E/ ( 49): b433 6155
E/ ( 49): b433 6157
E/gralloc ( 102): [unregister] handle 0x2debd0 still lock
W/BatteryService( 102): get battery health[0] 'Charging'
W/BatteryService( 102): get battery health='Good'
W/BatteryService( 102): get battery health[0] 'Charging'
W/BatteryService( 102): get battery health='Good'
过滤查看dalvikvm的log
logcat -s dalvikvm 或者 logcat dalvikvm *:s
D/dalvikvm( 257): GC freed 1191 objects / 343344 bytes in 65ms
D/dalvikvm( 257): GC freed 1191 objects / 343400 bytes in 64ms
D/dalvikvm( 257): GC freed 1191 objects / 343368 bytes in 65ms
D/dalvikvm( 257): GC freed 1191 objects / 343416 bytes in 70ms
D/dalvikvm( 257): GC freed 1191 objects / 343384 bytes in 64ms
备注:logcat的过滤方式有点儿怪异,并不是直接指定要过滤的tag并指定priority就行,必须要设定所有的为silent,在此基础上设置的tag过滤才成功。
所以,logcat appname:v 是不能成功过滤log的。
过滤多个app
logcat -s dalvikvm vold
D/vold ( 43): door_sock=10
D/vold ( 43): fw_sock=7
D/vold ( 43): uevent_sock=6
D/dalvikvm( 257): GC freed 1191 objects / 343384 bytes in 76ms
D/dalvikvm( 257): GC freed 1191 objects / 343368 bytes in 81ms
D/dalvikvm( 257): GC freed 1191 objects / 343400 bytes in 64ms
D/vold ( 43): select result=1
log保存到文件
logcat > 1.txt (">"是windows用的数据流导向符号)
尝试用-f选项,结果报错。
logcat -f 1.txt
couldn't open output file: Read-only file system
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
Android的Logcat用于显示系统的调试信息,可在分别以下几个地方查看和调用logcat:
1.eclipse的Debug模式或DDMS模式下的会有一个Logcat窗口,用于显示log日志
只需在eclipse中启动Android模拟器,切换到DDMS或debug模式下,就会有Logcat窗口,窗口右上方有一系列图标,其中V、D、I、W、E五个图标为五个调试信息过滤器:
V:不过滤输出所有调试信息 包括 VERBOSE、DEBUG、INFO、WARN、ERROR
D:debug过滤器,输出DEBUG、INFO、WARN、ERROR调试信息
I:info过滤器,输出INFO、WARN、ERROR调试信息
W:waring过滤器,输出WARN和ERROR调试信息
E:error过滤器,只输出ERROR调试信息
2.Android命令模式下,在启动一个模拟器是可以选择是否需要启动logcat:
Android Emulator命令的用法: emulator [options] [-qemu args]
1.Android Emulator命令的用法: emulator [options] [-qemu args]
启动模拟器命令:emulator -avd <name> -logcat <tags>;
name:模拟器名字,tags调试信息过滤器类型
例如:emulator -avd GPhone -logcat w
启动GPhone模拟器并运行logcat显示调试信息,调试信息的过滤器是w(可替换为v、d、i、e),代表只显示waring和error两类调试信息。
2.Android adb 命令:adb logcat [ <filter-spec> ] - View device log
<filter-spec> == <priority>/<tag>,(pritrity标签,tag为过滤类型)
例如:2.1、adb logcat 显示所有调试信息
2.2、adb logcat *:w 显示waring过滤器过滤后的调试信息
2.3、adb logcat Test1:V Test2:D 显示标签为Test1的所有调试信息,以及显示标签为Test2Debug过滤器过滤后的调试信息
3.Android程序中访问调试日志,并显示:
logcat介绍命令选项。
-s 默认设置过滤器
-f 输出到日志文件
-c 清除日志
-d 获取日志
-g 获取日志的大小
-v 格式设置日志(见下面的格式打印格式)
-v 格式 例
brief W/tag ( 876): message
process W( 876) message (tag)
tag W/tag : message
thread W( 876:0x37c) message
raw message
time 09-08 05:40:26.729 W/tag ( 876): message
threadtime 09-08 05:40:26.729 876 892 W tag : message
long [ 09-08 05:40:26.729 876:0x37c W/tag ] message
代码例子:
AndroidManifest.xml添加读取权限
<uses-permission android:name="android.permission.READ_LOGS" />
清除日志
try {
Runtime.getRuntime().exec("logcat -c");
} catch(Exception e) {
获取日志
try {
ArrayList<String> commandLine = new ArrayList<String>();
commandLine.add( "logcat");
commandLine.add( "-d");
commandLine.add( "-v");
commandLine.add( "time");
commandLine.add( "-s");
Usage: logcat [options] [filterspecs]
options include:
-s Set default filter to silent.
Like specifying filterspec '*:s'
-f <filename> Log to file. Default to stdout
-r [<kbytes>] Rotate log every kbytes. (16 if unspecified). Requires -f
-n <count> Sets max number of rotated logs to <count>, default 4
-M <1,0> Set enable copy(Move) the log to oms_log_path
-v <format> Sets the log print format, where <format> is one of:
brief process tag thread raw time threadtime long
-c clear (flush) the entire log and exit
-d dump the log and then exit (don't block)
-g get the size of the log's ring buffer and exit
-b <buffer> request alternate ring buffer
('main' (default), 'radio', 'events')
-B output the log in binary
filterspecs are a series of
<tag>[:priority]
where <tag> is a log component tag (or * for all) and priority is:
V Verbose
D Debug
I Info
W Warn
E Error
F Fatal
S Silent (supress all output)
'*' means '*:d' and <tag> by itself means <tag>:v
If not specified on the commandline, filterspec is set from ANDROID_LOG_TAGS.
If no filterspec is found, filter defaults to '*:I'
If not specified with -v, format is set from ANDROID_PRINTF_LOG
or defaults to "brief"
示例:
看radio log
logcat -b radio
I/RILC ( 46): 39 0d 0a
I/RILC ( 46): AT[0]< +ECIND: 1,16,99
I/RILC ( 46): AT[0]< +ECSQ: 16,99
I/RILC ( 46): <<<< pCh[0]...
I/RILC ( 46): 0d 0a 2b 45 43 49 4e 44 3a 20 31 2c 31 37 2c 39 39 0d 0a 0d 0a 2b 45 43 53 51 3a 20 31 37 2c 39
I/RILC ( 46): 39 0d 0a
I/RILC ( 46): AT[0]< +ECIND: 1,17,99
I/RILC ( 46): AT[0]< +ECSQ: 17,99
查看warning以上的log
logcat *:w
E/SensorManager( 102): smjni------jni data_open
E/ ( 49): b433 6155
E/ ( 49): b433 6157
E/gralloc ( 102): [unregister] handle 0x2debd0 still lock
W/BatteryService( 102): get battery health[0] 'Charging'
W/BatteryService( 102): get battery health='Good'
W/BatteryService( 102): get battery health[0] 'Charging'
W/BatteryService( 102): get battery health='Good'
过滤查看dalvikvm的log
logcat -s dalvikvm 或者 logcat dalvikvm *:s
D/dalvikvm( 257): GC freed 1191 objects / 343344 bytes in 65ms
D/dalvikvm( 257): GC freed 1191 objects / 343400 bytes in 64ms
D/dalvikvm( 257): GC freed 1191 objects / 343368 bytes in 65ms
D/dalvikvm( 257): GC freed 1191 objects / 343416 bytes in 70ms
D/dalvikvm( 257): GC freed 1191 objects / 343384 bytes in 64ms
备注:logcat的过滤方式有点儿怪异,并不是直接指定要过滤的tag并指定priority就行,必须要设定所有的为silent,在此基础上设置的tag过滤才成功。
所以,logcat appname:v 是不能成功过滤log的。
过滤多个app
logcat -s dalvikvm vold
D/vold ( 43): door_sock=10
D/vold ( 43): fw_sock=7
D/vold ( 43): uevent_sock=6
D/dalvikvm( 257): GC freed 1191 objects / 343384 bytes in 76ms
D/dalvikvm( 257): GC freed 1191 objects / 343368 bytes in 81ms
D/dalvikvm( 257): GC freed 1191 objects / 343400 bytes in 64ms
D/vold ( 43): select result=1
log保存到文件
logcat > 1.txt (">"是windows用的数据流导向符号)
尝试用-f选项,结果报错。
logcat -f 1.txt
couldn't open output file: Read-only file system
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
Android的Logcat用于显示系统的调试信息,可在分别以下几个地方查看和调用logcat:
1.eclipse的Debug模式或DDMS模式下的会有一个Logcat窗口,用于显示log日志
只需在eclipse中启动Android模拟器,切换到DDMS或debug模式下,就会有Logcat窗口,窗口右上方有一系列图标,其中V、D、I、W、E五个图标为五个调试信息过滤器:
V:不过滤输出所有调试信息 包括 VERBOSE、DEBUG、INFO、WARN、ERROR
D:debug过滤器,输出DEBUG、INFO、WARN、ERROR调试信息
I:info过滤器,输出INFO、WARN、ERROR调试信息
W:waring过滤器,输出WARN和ERROR调试信息
E:error过滤器,只输出ERROR调试信息
2.Android命令模式下,在启动一个模拟器是可以选择是否需要启动logcat:
Android Emulator命令的用法: emulator [options] [-qemu args]
1.Android Emulator命令的用法: emulator [options] [-qemu args]
启动模拟器命令:emulator -avd <name> -logcat <tags>;
name:模拟器名字,tags调试信息过滤器类型
例如:emulator -avd GPhone -logcat w
启动GPhone模拟器并运行logcat显示调试信息,调试信息的过滤器是w(可替换为v、d、i、e),代表只显示waring和error两类调试信息。
2.Android adb 命令:adb logcat [ <filter-spec> ] - View device log
<filter-spec> == <priority>/<tag>,(pritrity标签,tag为过滤类型)
例如:2.1、adb logcat 显示所有调试信息
2.2、adb logcat *:w 显示waring过滤器过滤后的调试信息
2.3、adb logcat Test1:V Test2:D 显示标签为Test1的所有调试信息,以及显示标签为Test2Debug过滤器过滤后的调试信息
3.Android程序中访问调试日志,并显示:
logcat介绍命令选项。
-s 默认设置过滤器
-f 输出到日志文件
-c 清除日志
-d 获取日志
-g 获取日志的大小
-v 格式设置日志(见下面的格式打印格式)
-v 格式 例
brief W/tag ( 876): message
process W( 876) message (tag)
tag W/tag : message
thread W( 876:0x37c) message
raw message
time 09-08 05:40:26.729 W/tag ( 876): message
threadtime 09-08 05:40:26.729 876 892 W tag : message
long [ 09-08 05:40:26.729 876:0x37c W/tag ] message
代码例子:
AndroidManifest.xml添加读取权限
<uses-permission android:name="android.permission.READ_LOGS" />
清除日志
try {
Runtime.getRuntime().exec("logcat -c");
} catch(Exception e) {
获取日志
try {
ArrayList<String> commandLine = new ArrayList<String>();
commandLine.add( "logcat");
commandLine.add( "-d");
commandLine.add( "-v");
commandLine.add( "time");
commandLine.add( "-s");
- Android 中Logcat的使用
- android中logcat 的使用
- Android开发中LogCat工具的使用
- Android 开发中 LogCat 工具的使用
- Android中LogCat工具的使用
- Android开发中LogCat的使用
- Android中logcat的介绍和使用
- Android中logcat的介绍和使用
- Android Logcat的使用
- Android Logcat的使用
- android logcat的使用
- Android Logcat的使用
- android的logcat使用
- Android Logcat的使用
- Android的LogCat的使用
- Android的LogCat的使用
- Android的LogCat的使用
- Android的LogCat的使用
- 黑马程序员_java面向对象——多态
- Codeforces Beta Round #11
- Restrictions用法
- Eclipse下快速打开本地文件插件EasyExplorer
- 基于cocos2d-x引擎的游戏框架设计
- Android 中Logcat的使用
- C语言15大头文件介绍
- MyGeneration 自动生成nhibernate
- VS断点调试
- Android中在ScrollView中显示ListView
- win7下使用PHP Expert Editor编写php程序,传入已经搭配好LAMP环境的Ubuntu内的服务器上
- 查询域名所指向的IP地址
- C#控件
- 常量成员函数