android系统日志

来源:互联网 发布:嵌入式单片机按钮模块 编辑:程序博客网 时间:2024/09/21 08:50

系统日志主要包含:
android log(包含 main_log、events_log、kernel_log),mainlog记录手机android上层app以及framework相关活动的log,比如你写的app打印的log,就在这里面;eventslog则主要是ActivityManager、powerManager等相关的log;Kernellog则主要是驱动相关的log。)
可以在dos窗口用命令调出该日志:logcat -v time :V*

Log命令详解:
logcat本身是android的shell的一个命令,你可以通过“adb shell”进入shell后执行logcat命令,也可以通过”adb logcat”直接运行。
语法:
[adb] logcat [] … [] …
选项:
-b 指定要查看的日志缓冲区,可以是system,events ,radio,main . 默认值是system和main 。
-c 清楚屏幕上的日志.
-d 输出日志到屏幕上.
-f 指定输出日志信息的 ,默认是stdout .
-g 输出指定的日志缓冲区,输出后退出.
-n 设置日志的最大数目 .,默认值是4,需要和 -r 选项一起使用。
-r 每 时输出日志,默认值为16,需要和-f 选项一起使用.
-s 设置默认的过滤级别为silent.
-v 设置日志输入格式,默认的是brief 格式,要知道更多的支持的格式,参看Controlling Log Output
参数
参数用于对某类的tag的日志输出进行过滤。每一个输出的Android日志信息都有一个tag和它的优先级.
日志的标签是系统部件原始信息的一个简要的标志。这个tag就是Log.i,Log.d,Log.i,Log.w,Log.e,Log.wtf系列函数中的tag.
对于System.out.print系列函数所对于的tag,其实就是”System.out”
以“tag:priority”的形式来对日志输出进行过滤的
优先级priority有以下几种,按照从低到高顺利排列如下:
V — Verbose (lowest priority) 对应于Log.i()系列函数
D — Debug 对应于Log.d()系列函数
I — Info 对应于Log.i()系列函数
W — Warning 对应于Log.w()系列函数
E — Error 对应于Log.e()系列函数
F — Fatal 对应于Log.wtf()系列函数
S — Silent (highest priority, on which nothing s ever printed)

怎样构建一个日志应用:
* 大致思路:
* 1,运用环境命令 logcat -c,清除掉残余的缓存信息。
* 2,调用环境命令 ps,获取到所有的进程信息list,并将其封装到ProcessInfo类里面
* 3,杀掉由本用户调用起的其他logcat进程。(利用用户pid和用户name)
* 4,可以放心的执行logcat -f /storage/sdcard0/ff.log -v time *:E了

注意
1,调用Runtime.getRuntime().exec(“ps”)命令时,会在当前用户下建立一个子进程,返回一个process,新建了该进程就一定要找时候杀死这个进程。
2,在没有root的设备上,该logwriter应用只能写自己发生的日志。

1 0