Android Log日志信息获取

LogCat是Android中一个命令行工具,可以用于得到程序的log信息,结合tee和grep命令可以方便的获取、查看日志。

1、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这3种log将出现在发布版本中。

2、tee使用
    功能说明:读取标准输入的数据,并将其内容输出成文件。
    语  法:tee [-ai][--help][--version][文件...]
    补充说明:tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。
    参  数:
    -a或--append  附加到既有文件的后面,而非覆盖它.
    -i-i或--ignore-interrupts  忽略中断信号。
    --help  在线帮助。
    --version  显示版本信息。

3、grep使用
   grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。
   grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到屏幕,不影响原文件内容。
   grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。
   具体命令和语法请参考其他书籍。

4、Logcat、tee和grep结合使用
   三者结合到一起可以实现:log日志同时输出到终端和本地文件,对于输出到终端的log按照grep的要求进行过滤显示。
   比如:sudo ./adb logcat -v time | tee /home/Linux/main.txt |grep 'accept'——输入android应用层日志到屏幕和main.txt文件,同时过滤屏幕的日志显示包含字符串“accept”的行,以关注自己需要的信息。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwyxwf.html