-
功能
-
日志系统
-
说明
- 安卓的日志系统是由系统进程
logd进行管理. logd将部分日志通过循环链表缓存.
- 安卓的日志系统是由系统进程
-
缓存
- 日志缓冲集合:
main,crash,system等进行分类,缓冲区大小固定,系统确定缓冲区大小. - 日志分等级:方便根据等级对日志过滤.
VERBOSE<DEBUG<INFO<WARNING<ERROR<FATAL.
- 日志缓冲集合:
-
日志
- 输出一般会格式化,格式化会标注出原始信息,以区分由日志工具添加的信息.
-
日志系统的编程接口
-
c- 通过
liblog,头文件定义在android/log.h. - 常用上层接口是
__android_log_write.函数实现是__android_log_logd_logger,一般是socket. api 30过后可以用__android_set_log_writer切换输出目标.
- 通过
-
JavaLog类.
-
参数格式
Log.X(tag,msg).tag一般是activity或者app之类用于标记某个应用或activity的,msg是真实信息.
-
完整参数
__android_log_buf_write(int bufID, int prio, const char *tag, const char *text)
-
参考链接
-
输出
logcat对日志进行二次格式化.美化后方便阅读.
-
-
日志过滤四类
-
-
指令
-
logcat -
前言
-
选项
-
-b buffer- 查看指定日志缓冲池
-
-c,--clear- 清理指定缓冲区并退出.
- 清理默认缓冲池.
-
-e expr | --regex=expr- 正则表达式输出,匹配
msg.
- 正则表达式输出,匹配
-
-m count | --max-count=count- 输出
n行后停止.
- 输出
-
--print- 和
--regex,--max-count一起使用. - 伪代码
def print(arg,n): index = 0 while index < n: data = log.read() if re.match(arg,data): index += 1 print(data) - 和
-
-f fliename- 输出到文件,默认
stdout.重定向时需注意.
- 输出到文件,默认
-
-g --bufer-size- 查看各个日志缓冲池的大小.
-
-n count- 设置循环队列大小.默认
4.
- 设置循环队列大小.默认
-
-r kbytes- 设置循环队列大小.
16kbytes.
- 设置循环队列大小.
-
-s- 不输出.
-
-v format- 指定输出日志的格式化形式.
-
-c- 清理所有日志缓存并推出.
-
-t count- 输出最新的
n条.
- 输出最新的
-
-t 'time'- 指定时间开始输出.
-
--pid=pid- 输出指定
pid的日志.
- 输出指定
-
-
输出简介
-
tag- 对日志的标记,简单的介绍.
-
priority- 日志的优先级.
VERBOSE<DEBUG<INFO<WARNING<ERROR<FATAL- 一般是用首字母显示.
-
demo## logcat -v brief output I/ActivityManager( 585): Starting activity: Intent { action=android.intent.action...}I表示优先级ActivityManager表示输出tag.585进程号,:后的则是信息.
-
过滤
tag:prioritytag可以是正则.
-
过滤与环境变量
export ANDROID_LOG_TAGS="ActivityManager:I MyApp:D *:S"设置.logcat默认参数,避免重复编写.
-
-
-
输出格式化
-v
logcat
最新推荐文章于 2023-12-20 11:15:02 发布
1528

被折叠的 条评论
为什么被折叠?



