Android log 系统
admin
2024-01-18 16:32:03
0

一、android log 架构

在Android生态系统中有不同类型的日志: 主日志、Android系统日志、事件日志和Radio日志。主日志用于应用程序,events用于系统事件信息,radio用于电话相关信息,android system用于系统消息和调试。

Android日志系统包括一个内核驱动程序和用于存储Android日志消息的内核缓冲区,用于创建日志条目和访问日志消息的C、c++和Java类,一个用于查看日志消息的独立程序(logcat),以及查看和过滤来自主机的日志消息的能力(通过Android Studio或ddms)。

Linux内核中有四个不同的日志缓冲区,它们为系统的不同部分提供日志记录。所有的的缓冲区都在设备节点(硬件设备的虚化)“在/dev/log”下,有“/dev/log/main”, “/dev/log/radio”,“/dev/log/event”,“/dev/log/system”,分别对应主日志、事件日志、Radio日志和系统日志。

主日志使用android.util.Log打印,主要被应用使用。

系统日志使用android.util.Slog打印。许多android框架层的模块使用该工具打印日志,这样可以与应用日志区分开,避免其他日志干扰。

事件日志使用android.util.EventLog打印,输出二进制格式的日志。日志入口包含二进制tag code,后面跟二进制参数。二进制tag code存储在 /system/etc/event-log-tags。

/data/anr: Dalvik在anr上写堆栈跟踪,即“应用程序不响应”或“强制关闭”。

/data/dontpanic: 包含一些崩溃日志,包括跟踪。

/data/kernelpanics: —存储内核恐慌相关的日志。

/data/tombstones: 可以保存多个tombstone_nn文件(nn是一个从0到10的数字,在10之后再次重复它)。

1.1 Logd守护进程

logd守护进程,开机时由 init 进程拉起;logd 内部维护了一个 RAM buffer 用作日志的缓存。各个进程的日志都会写入此缓存中。如果日志大小超过缓存限定,就会删除最老的日志。

注意 logd 对外维护了 3 个 socket api :

  • dev/socket/logd : 传输控制指令

  • dev/socket/logw : 写日志

  • dev/socket/logr : 读日志

1.2 写日志流程

1.3 读日志

1.4 日志解析

不同于写日志的流程,日志在保存时是有特定的格式去存储。在读取时 logcat 作为读取的客户端是需要先对日志进行格式解析,并拼接为命令行可见的字符串,因此有了 processBuffer 的过程。同时 logcat 打印日志超过了文件大小限制,就需要调用 rotateLogs 函数去建立新的文件。

1.5 日志打印消耗资源

1:进程通信: 日志信息通过 socket 发送给 logd。

2:cpu 消耗: logd 中 ring buffer 会经常进行 pruneLogs 操作,删减日志,耗费CPU资源。

3:内存占用:logd 中维持对应的 buffer,RAM 的消耗。

4:io 读写消耗:在应用程序中 ,创建后台线程保存日志信息,这回导致应用或者整机卡顿。

二 、logd

2.1 知识点:

logd 是日志系统的核心进程,由 init 启动,是属于守护进程常驻后台 ② logd 维护各个日志节点缓存队列,提供 socket 接口进行读、写、控制功能 ③ logd 进程启动后,分别启动 LogReader、LogListener、CommandListener 三个线程,监听并处理来自三个 socket 的消息。在收到消息后,会通过 LogBuffer 类保存日志到对应的 RAM buffer 中 ④ LogAudit 模块用于接收 Kernel selinux 信息,即可以在用户空间打印 selinux 日志信息 ⑤ LogKlog 用于接收 kernel 日志信息,通过设置 property ,可以通过 logcat 命令读取内核日志 ⑥ LogStatistics 是日志统计模块,默认开启统计数据较少,仅能以 pid/uid 纬度统计打印日志的数量。如果设置了 logd.statistic = true 。会打印更多纬度的统计信息,包括哪些 pid/uid/tid/TAG 日志量比较大,可用于日志裁剪相关

2.2 logd 启动流程

相关内容

热门资讯

【苏百和酒知识】啤酒白酒一起喝... 啤酒白酒一起喝,咋就难受得快?一句话:不是酒量差,是身体被“夹攻”。 苏百和 先上结论:别混。白酒像...
小熊粥铺:服务与优势双轮驱动,... 在快节奏的现代生活中,人们越来越注重饮食的健康和品质。小熊粥铺凭借其卓越的服务和显著的优势,如同一股...
一个冰淇淋 沈珩江璇林祁雾_第... 第1章 六年后,我与沈珩破镜重圆了。 我蹲在蜜雪冰城门口时,拉住了步履匆匆的他。 圣代买一送一,凑...
寻味│吃透酱爆养生诀!夜忙族的... 锅铲碰撞的脆响里,藏着一道跨城的烟火 —— 温州的墨鱼炒猪肝,遇上了上海浇头的酱爆魂。猪肝得先经盐与...
夏日周末的正确打开方式:在菏泽... 在菏泽这座充满生活气息的城市里 甜品店宛如散落在 各个角落的甜蜜宝藏 每一家都散发着独特的魅力 它们...
歌手田震来淄博吃烧烤啦 7月25日田震发布抖音视频, 分享来淄博吃烧烤。 烤肉、大葱、蘸料、小饼一卷, “就一个字,爽!” ...
水果拌着辣椒吃 腌制凉拌水果在... “口感出乎意料!”上周末,“95后”上班族杨女士打卡了一款叫作“酸嘢”的凉拌水果,“水果拌辣椒,乍一...
西北游玩全攻略,必去景点+行程... 西北,这片广袤而神秘的土地,一直是我心中向往的远方。2025年的盛夏,我终于踏上了这段期待已久的旅程...
江苏省文化和旅游厅关于组织实施... 各设区市文化广电和旅游局: 文化和旅游部定于2025年11月22日举行2025年全国导游资格考试。为...
华夏古文明,北京好风光!这些信... 北京,这座承载着千年历史与文化的古都,以其独特的魅力吸引着无数游客前来探寻。在众多旅行社中,有几家脱...
张家界是夏日里的自然游乐园,在... 张家界从不是刻板的风景区,而是一座露天的自然游乐园,这里的峰林是巨型滑梯,溪涧是天然泳池,云雾是流动...
石榴花开 籽籽同心丨从游牧到定... 位于新疆维吾尔自治区塔城地区裕民县城以西7公里的江格斯乡阿克铁克切村坐落在绵延的巴尔鲁克山脚下,紧邻...
团建热选地!就在永泰这里→ 位于葛岭镇的房家·月亮湾营地 正凭借自身优势 逐渐成为企业团建的热门之选 它以一站式服务、山海相依的...
“好运山东”2025山东省体育... 7月25日,“好运山东”2025山东省体育消费季暨青岛时尚体育节在金沙滩啤酒城启动。 “好运山东”...
张家界五天四晚亲子避暑攻略:张... 张家界的夏天,是被山水泡透的清凉。当城市的柏油路蒸腾着热气,这里的峰林却披着浓绿的铠甲,溪涧里淌着冰...
湖南长沙网约车司机吐槽,大学生... 湖南长沙是全国十大网红人气榜旅游城市,与西安,重庆、成都一样名气大,美食多,旅游景点也多,著名景点有...
2017年饺子皮逆天新吃法,不... Mis.Cai考考你:包剩下的饺子皮怎么处理呢?有人说煮面皮汤,这也是一种方法,但是还有许多更美味的...
沸腾火锅、香甜奶茶、劲道拉面…... 央视网消息:2025年是中国和欧盟建交50周年。随着日益频繁的人员和文化交流,沸腾的火锅、香甜的奶茶...