Android日志系统

Android系统有一个日志功能,允许系统从应用程序和系统组件记录信息。这与Linux内核自己的日志系统是分开的,内核使用“dmesg”或“/proc/kmsg”访问。日志系统在内核缓冲区中存储消息。

$ adb shell dmesg > dmesg.txt 内核log

日志系统包括:
用于存储日志消息的内核驱动程序和内核缓冲区。
用于生成日志条目和访问日志消息的C、c++和Java类。
用于查看日志消息的独立程序(logcat)
能够查看和过滤来自主机(通过eclipse或ddms)的日志消息

Linux内核中有4个不同的日志缓冲区,它们为系统的不同部分提供日志记录。访问不同的缓冲区是通过文件系统中的设备节点/dev/log实现。

四个日志缓冲区是:
main—应用程序日志。
events—用于系统事件信息。
radio无线电广播和电话相关信息。

system—用于低级系统消息和调试的日志。

各部分log抓取方法:

$ adb logcat -d -v time -b "main"   >  main.txt

$ adb logcat -d -v time -b "system" >  system.txt

$ adb logcat -d -v time -b "events" >  events.txt


直到2010年,只有前三个日志存在。系统日志被创建是为了将系统消息保存在一个单独的缓冲区中(在“/dev/log/main”之外),这样一个冗长的应用程序就不能超过系统消息并导致它们丢失。

日志中的每个消息都包含一个标记,该标记指示消息来自的系统或应用程序的一部分, 标记包括时间戳、消息日志级别(或由消息表示的事件的优先级)和日志消息本身。

除了“事件”之外,所有日志缓冲区都使用自由格式的文本消息。“事件”缓冲区是一个“二进制”缓冲区,事件消息(和事件参数)以二进制形式存储。这种方式更紧凑,但在从缓冲区读取事件时需要额外处理,比如消息查找数据库,以解码事件字符串。

日志系统自动将带有特定标记的消息路由到radio缓冲区。其他消息被放置到各自的缓冲区中。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值