zoukankan      html  css  js  c++  java
  • logcat日志文件

    android日志系统提供了记录和查看系统调试信息的功能,日志都是从各个软件和一些系统的缓冲区中记录下来的,缓冲区可以通过logcat命令来进行查看和使用

    开发者选项,有个选项叫做“日志记录器缓冲区大小”,默认是256K,日志是循环写入环形缓冲区的,在通常情况下,写满时最旧的日志会被删除已给新输出的日志留内存空间

    1.缓冲区的类型
    Android 日志系统为日志消息保留了多个循环缓冲区,不是所有的消息都被发送到默认缓冲区,要想查看这些附加的缓冲区,可以使用 -b选项,查看指定的缓冲区:

    adb logcat [-b <buffer>]
    buffer可以有如下选项:

      • Radio 参数可以抓取Android RIL层 ,查看log包含在通信系统的log,如蓝牙、wifi、打印.、网卡、3G、4G    命令:adb logcat -b radio
      • Events 查看事件相关的消息,比如启动应用,停止文件 事件.
      • Main 查看主缓冲区、所有Java层的log(默认缓冲区).
      • System 输出系统组件的log(默认缓冲区).

    ps:默认使用 【adb logcat】会输出Main及System缓冲区的log信息。

    加参数-v  time 可以显示每天记录的详细时间,如  adb logcat -b system -v time > D:log.system.txt

    2.认识输出日志信息

    输出的日志信息格式如下图所示:

    1)日志内容由五部分组成

    大概就是显示:时间 、进程Id=1164、 线程Id=1181、优先级=D、标签(tag)=WindowManger : message

      1. 写下日志时的时间,如:08-11 09:45:35.209
      2. 优先级:日志的优先级从小到大为

    V-Verbose(啰嗦,最低级别,开发调试时的一些详细信息,仅在开发中使用,不可在发布产品中输出)

    D-Debug(调试,用于调试的信息,可以在发布产品中关闭,比较常见)

    I-information(信息,一般提示性的消息)

    W-warning(警告)

    E-Error (错误,已经出现可影响运行的错误,比如应用crash时输出的日志)

    S(无记载)

     3.标签(tag),表明日志发起者和方便日志的过滤筛选,如上图中的SystemServer

    4.PID(进程ID),如上图中的1760

    5.正文,本日志的主体部分

    2)过滤日志

    如果要减少logcat 的输出日志,可以使用如上条件进行过滤、可用多个表达一起限制

    过滤表达式的格式为:tag:prority (因为同一个tag可以有不同的优先级) 

               如:adb logcat ActivityManager:I MyApp:D *:S   

                       备注1:仅用于输出标记为“ActivityManager”且优先级大于等于"I"和标记为“MyApp”,优先级大于等于"Debug"的日志。 

                       备注2:*:S是用于设置ActivityManager:I MyApp:D输出的日志再次过滤 ,标记这些日志的优先级为S(即只输入ActivityManager:I MyApp:D日志,其他的不输出) 

                       备注3:一般都会在过滤后加上*:S以输出符合指令的日志

    adb logcat *:W  // "*"是指所有的tag, "*:W"是指输出所有的优先级为W以上的所有tag日志信息 

    可通过包名来过滤日志,

    将程序运行在前台,通过命令查看应用包名称:adb shell dumpsys | findstr "mFocusedActivity"

    3)分析日志异常情况

    发生 crash 问题,搜索关键字 force finishing  (往上找日志:FATAL EXCEPTION—Force finish)

    ANR(Application not responding)应用无响应,当应用操作一段时间内系统无法处理时,系统会弹出无响应的对话框。具体可以产看traces.txt文件,进行分析。

    traces.txt文件是一个ANR记录文件,用于开发人员调试,目录位于/data/anr中
    ,无需root权限即可通过pull命令获取,下面的命令可以将traces.txt文件拷贝到当前目录下

    通过ANR in 过滤数据 从上往下找数据

    ANR需要提交的日志文件:logcat(从ANR in 开始+cpu使用之后)+Trace.txt(保存的是最后一次anr 的信息)

    出现多次anr:将dropbox 下的data_app_anr 直接给开发人员

    通过dropbox 收集一段时间内的异常信息(包括ANR)

    /data/system/dropbox  

    Data_app 是第三方的app

    App 发生异常

    l  首先判断是崩溃还是无响应anr(根据对话框进行)

    l  Adb logcat抓取日志文件 如果是ANR 取dropbox下面的data_app_anr

    l  复现场景 复现步骤复现环境

         

     

  • 相关阅读:
    设备树DTS 学习:学习总结(应用篇)
    设备树DTS 学习: 4-uboot 传递 dtb 给 内核
    设备树DTS 学习:3-驱动开发中常用的 DTS api
    分布式系统阅读笔记(十五)-----协调和一致性
    朴素贝叶斯分类算法
    朴素贝叶斯分类算法
    分布式系统阅读笔记(十四)-----时钟和全局状态
    分布式系统阅读笔记(十四)-----时钟和全局状态
    K-最近邻算法
    K-最近邻算法
  • 原文地址:https://www.cnblogs.com/jingdenghuakai/p/11363427.html
Copyright © 2011-2022 走看看