转自: http://fgsink.blog.163.com/blog/static/167169970201182095851142/
Android应用程序开发,调试时需要辅助日志文件中的输出信息。
一、Android应用程序调试
默认Android应用程序不能调试,(eclipse)会提示如下信息:“Application “xxx” does not have the attribute 'debuggable' set to TRUE in its manifest and cannot be debugged”
需要修改Manifest文件中的debuggable属性,使其值为true,这时才可以调试。
二、日志信息
1、输出日志信息
Android提供一个静态Log类,提供五个静态方法Log.v()(详细),Log.d()(debug),Log.i()(information),Log.w()(warning) ,Log.e()(error),用来将消息写入模拟器上的日志文件中。如果在DDMS上运行logcat可以就实时查看消息
(1)日志信息级别
? Log.v() -------------------- VERBOSE
? Log.d() -------------------- DEBUG
? Log.i() -------------------- INFO
? Log.w() -------------------- WARN
? Log.e() -------------------- ERROR
以上log的级别依次升高,DEBUG信息应当只存在于开发中,INFO, WARN,ERROR这三种log将出现在发布版本中。
(2)输出日志信息
在应用程序中添加 import android.util.Log;
使用该类的静态方法,
1. Log.d(String tag, String msg);
1. Log.i(String tag, String msg);
2. Log.w(String tag, String msg);
3. Log.e(String tag, String msg);
?其中: tag是一个标识,可以是任意字符串(一般将tag设置成一个静态常量或使用类名+方法名)用来在查看日志时提供一个筛选条件,以方便的追踪信息的输出。
? Msg 是log信息的内容。
在应用程序中使用 System.out.println();语句将信息输出到日志文件(而不是将信息输出到控制台)。
2、eclipse中查看日志
设置步骤如下:
(1)windows ==> Preferences ==> Android ==> DDMS ==> Logging Level
(设置日志级别,选中之下的将被显示,选中之上的不被显示。)
(2)windows ==> Show View ==> Android ==> LogCat
(3)显示LogCat栏目。
3、使用logcat命令行工具查看日志
logcat是Android中的一个命令行工具,可以用其得到程序的log信息。
logcat使用方法如下:
logcat [options] [filterspecs]
options包括:
? -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,
priority 如下:
? V Verbose---------------------------------------Log.v()
? D Debug-----------------------------------------Log.d()
? I Info---------------------------------------------Log.i()
? W Warn-----------------------------------------Log.w()
? E Error------------------------------------------Log.e()
? F Fatal
? S Silent