logcat是Android中一个命令行工具,可以用于得到程序的log信息。

logcat使用方法如下所示:
logcat [options] [filterspecs]
logcat的选项包括:
-s 设置过滤器,例如指定 '*:s'
-f <filename> 输出到文件,默认情况是标准输出。
-r [<kbytes>] Rotate log every kbytes. (16 if unspecified). Requires -f
-n <count> Sets max number of rotated logs to <count>, default 4
-v <format> 设置log的打印格式,<format> 是下面的一种:
brief process tag thread raw time threadtime long

-c 清除所有log并退出
-d 得到所有log并退出 (不阻塞)
-g 得到环形缓冲区的大小并退出
-b <buffer> 请求不同的环形缓冲区 ('main' (默认), 'radio', 'events')
-B 输出log到二进制中。

过滤器的格式是一个这样的串:
<tag>[:priority]

其中 <tag> 表示log的component, tag (或者使用 * 表示所有) , priority 如下所示:
V Verbose
D Debug
I Info
W Warn
E Error
F Fatal
S Silent


事实上logcat的 功能是由Android的类android.util.Log决定的,在程序中log的使用方法如下所示:
Log.v() -------------------- VERBOSE
Log.d() -------------------- DEBUG
Log.i() -------------------- INFO
Log.w() -------------------- WARN
Log.e() -------------------- ERROR
以上log的级别依次升高,DEBUG信息应当只存在于开发中,INFO, WARN,ERROR这三种log将出现在发布版本中。

对于JAVA类,可以声明一个字符串常量TAG,Logcat可以根据他来区分不同的log,例如在计算器(Calculator)的类中,定义如下所示:

public class Calculator extends Activity {
/* ...... */
private static final String LOG_TAG = "Calculator";
private static final boolean DEBUG= false;
private static final boolean LOG_ENABLED = DEBUG ? Config.LOGD : Config.LOGV;
/* ...... */
由此,所有在Calculator中使用的log,均以"Calculator"为开头。

例如使用方法如下所示:
# logcat &
< 得到一个log片段 >
W/KeyCharacterMap(130): No keyboard for id 0
W/KeyCharacterMap(130): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
I/ActivityManager( 52): Displayed activity com.android.contacts/.DialtactsContactsEntryActivity: 983 ms
I/ARMAssembler( 52): generated scanline__00000077:03545404_00000A04_00000000 [ 29 ipp] (51 ins) at [0x25c978:0x25ca44] in 1764174 ns
I/ARMAssembler( 52): generated scanline__00000077:03515104_00000001_00000000 [ 46 ipp] (65 ins) at [0x25d1c8:0x25d2cc] in 776789 ns
D / dalvikvm ( 130 ): GC freed 834 objects / 81760 bytes in 63ms
D/dalvikvm( 52): GC freed 10588 objects / 425776 bytes in 94ms

其中 W/I/D表示log的级别,“ dalvikvm”“ ARMAssembler”等是不同组件(component)的名称,后面括号里面的 数字表示了发出log的进程号。

使用技巧:
1.使用logcat &在后台运行
2.使用-d得到所有log
3.使用-f或者重定向(>和>>)输出到文件
4.使用-s设置过滤器,得到想要的log。

当然,最重要的还是在程序中加入恰当的log.

更多相关文章

  1. YUV420P的格式以及转换为RGB565的代码(Android摄像头的输出一般为
  2. Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原
  3. Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原
  4. 6、android 普通日志输出到SD卡
  5. Android(安卓)之 LogCat Log
  6. Permission Denial: opening provider 隐藏的android:exported属
  7. 【Android】Intent传递数据量过大的问题android.os.TransactionT
  8. 调整android输出分辨率,适配更大分辨率的屏
  9. 编译cubieboard android 源码过程详解之(四):extract-bsp

随机推荐

  1. Android Design Support Library使用详解
  2. android之修改工程名
  3. android 学习方法
  4. android 程序错误全局处理
  5. Android ADB server didn't ACK
  6. 不能直接从eclipse拷贝源码到android系统
  7. Android Lambda
  8. Android(安卓)Native Crash崩溃及错误原
  9. android技术分析
  10. Android开发中TextView文本过长滚动显示