android LOG

来源:互联网 发布:致知在格物的意思 编辑:程序博客网 时间:2024/06/09 17:03

LOG是广泛使用的用来记录程序执行过程的机制,它既可以用于程序调试,也可以用于产品运营中的事件记录。

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

log的级别说明
Verbose: 开发调试过程中一些详细信息,不应该编译进产品中,只在开发阶段使用。(参考api文档的描述:Verbose should never be compiled into anapplication except during development)
Debug: 用于调试的信息,编译进产品,但可以在运行时关闭。(参考api文档描述:Debug logs are compiled in but stripped atruntime)
Info:例如一些运行时的状态信息,这些状态信息在出现问题的时候能提供帮助。
Warn:警告系统出现了异常,即将出现错误。
Error:系统已经出现了错误。
Info、Warn、Error这三个等级的Log的警示作用依次提高,需要一直保留。这些信息在系统异常时能提供有价值的分析线索。
VERBOSE DEBUG信息应当只存在于开发中,INFO,WARN,ERROR这三种log将出现在发布版本中。
事实上logcat的功能是由Android的类android.util.Log决定的,在程序中log的使用方法如下所示:
Log.v() -------------------- VERBOSE
Log.d() -------------------- DEBUG
Log.i() -------------------- INFO
Log.w() -------------------- WARN
Log.e() -------------------- ERROR

Log.a()
以上log的级别依次升高,DEBUG信息应当只存在于开发中,INFO, WARN,ERROR这三种log将出现在发布版本中。

NDEBUG 是总开关,默认在编译参数中加入,如果要控制打印级别,如下:
打开ALOGV: #define LOG_NDEBUG 0  //允许Verbose级别打印
打开ALOGI:#define LOG_NIDEBUG 0    //允许Info级别打印
打开ALOGD:#define LOG_NDDEBUG 0    //允许Debug级别打印

打开全部LOG:#undef NDEBUG    //允许所有级别打印
0 0
原创粉丝点击