Android Log分析

来源:互联网 发布:什么是网络计划 编辑:程序博客网 时间:2024/06/02 07:47

Android Log简单使用

日志控制选项:


日志级别:V-E是我们常用的日志输出级别


日志过滤:使用adb logcat -s “MyTag”

例如app有这样Log.d("MyAppTag","what you want to log");形式日至输出

我们命令行这样控制:adb logcat -s MyAppTag  这是输出窗口只有Tag为MyAppTag信息输出

还可以过滤指定的系统消息:例如ActivityManager

还可以使用:adb logcat MyTag:D *:S(-s于*-s相当)

多种过滤组合:

1,一种方式过滤还不够精准,还需要加入多个(多个tag,多个级别) 过滤Tag为MyApp,日志级别为Debug和Tag为ActivityManager,级别为 I 的信息

adb logcat ActivityManager:I MyAppTag:D *:S (注意*:S为限制符只输出符合这两种中的一种规则,才输出。如果没有此限制还会输出此级别以上的日志消息)

2,关键字 grep(注意Windows下不支持这个关键字,进入shell下可以使用)
通过grep来过滤关键字,这样更加灵活。
写法:logcat | grep 关键字
比如:logcat | grep tt(只能识别小写的tt)
logcat | grep i tt(无论是TT,tt,Tt...都可以被识别)


输出格式控制:使用adb logcat -v <format> 进行格式化输出:

正常一般日志输出是:tag:priority(即标与级别形式+pid)I/ActivityManager( 1166): Displayed com.netease.newsreader

我们可以加入Time输出:adb logcat -v time -s "MyAppTag" 


long格式


Log Buffers:日志消息来源,Android系统共分为4个buffer,不同的buffer内读取的信息不一样

buffer分为四个:

 /dev/log/main 默认

 /dev/log/radio 无线/电话相关(网络,GMS)

 /dev/log/event 事件相关(process打开,关闭,Activity,service状态等)

 /dev/log/system 系统相关


radio

events(组建状态,进程状态,crash进程,anr进程信息都会显示)


相关文档:

https://developer.android.com/studio/command-line/logcat.html
http://elinux.org/Android_Logging_System


Log监控APP运行情况:

我们可以获取系统log部分信息对程序运行情况进行数据

通过过滤ActivityManager信息可以查看process及组建Activity,service启动,销毁等

通过dalvikvm,AndroidRuntime Log信息查看crash信息


ANR问题:events log


main log

07-30 16:24:37.997: E/ActivityManager(1166): ANR in com.example.androidtest (com.example.androidtest/.MainActivity)07-30 16:24:37.997: E/ActivityManager(1166): PID: 2023607-30 16:24:37.997: E/ActivityManager(1166): Reason: Input dispatching timed out (Waiting because the touched window has not finished processing the input events that were previously delivered to it.)



0 0
原创粉丝点击