Android单条日志太长导致被截断的问题分析和解决
admin
2024-05-02 11:56:03
0

文章目录

  • 背景
  • 查看日志缓冲区大小、单条日志大小
  • 调节日志缓冲区大小
  • 调节单条日志大小

背景

通常在Android中使用logcat输出查阅日志,但有时日志很长,可能会被截断,显示不完整。

注意,这里指的是单条日志太长了被截断了,不是指日志太多了被冲掉了

本文研究日志被截断的原因,并给出修改方法。

首先日志被截断的原因有如下几种,其中第一种是首要原因:

  1. 单条日志长度上限,日志如果太长,触及上限则会被截断
  2. 日志如果涉及序列化、binder传输,则受到binder传输上限的限制
  3. 底层(Linux、log设备)限制、系统调用限制

注意,单条日志长度上限是指一次打印的日志的长度,不是指设置-开发者选项-日志缓冲区大小。

查看日志缓冲区大小、单条日志大小

#:/ logcat -g
main: ring buffer is 16 MiB (15 MiB consumed), max entry is 5120 B, max payload is 4068 B
system: ring buffer is 16 MiB (6 MiB consumed), max entry is 5120 B, max payload is 4068 B
crash: ring buffer is 16 MiB (13 KiB consumed), max entry is 5120 B, max payload is 4068 B
kernel: ring buffer is 16 MiB (3 MiB consumed), max entry is 5120 B, max payload is 4068 B

通过logcat -g指令可以读到各个分类的缓冲区上限、目前用量、每次读取量、单条日志长度的上限。

调节日志缓冲区大小

  • 法1: 开发者模式-设置日志缓冲区大小
  • 法2: 通过logcat -G即可设置,等同于法1

调节单条日志大小

修改代码根目录下的system/core/liblog/include/log/log_read.h下的LOGGER_ENTRY_MAX_PAYLOADLOGGER_ENTRY_MAX_LEN

修改后,需要重新编译如下三个模块: liblog logd logcat,推入设备,重启方能生效。(通过logcat -g可以验证修改)

不同Android版本在不同位置,比如这个。

相关内容

热门资讯

英语口语App推荐 2024高... 掌握流利英语口语,对在校学生和职场人士都具有显著价值。然而现实中,许多学习者长期陷入“哑巴英语”困境...
仁王游戏间歇性卡顿原因分析与实... 《仁王》作为一款以高难度动作系统和风格迥异BOSS战著称的硬核ARPG,长期受到核心玩家群体的高度认...
代号新生游戏类型与特色玩法详解 《代号新生》是一款融合战术射击、末日生存与轻度建造元素的俯视角多人合作竞技手游。游戏以冰封废土为背景...
盲盒APP推荐 盲盒APP排行... 盲盒文化近年来持续升温,越来越多用户被其不可预测的惊喜感所吸引。作为一种融合收藏、社交与轻娱乐的数字...
丧尸监狱游戏上线时间及开服详情 《丧尸监狱》将彻底重构丧尸生存类游戏的叙事逻辑与玩法框架——不再扮演仓皇奔逃的幸存者,而是以典狱长身...
2026热门耐玩的脑筋急转弯游... 想科学评估自己的逻辑思维与反应能力?脑筋急转弯类益智手游正是兼具趣味性与训练价值的理想选择。这类游戏...
Biubiu网游加速器功能特色... 最近想尝试《命运扳机》新赛季,但登录界面持续加载转圈,组队时频繁卡顿、延迟飙升,严重影响游戏体验。不...
CF体验服加速器推荐:稳定低延... CF体验服加速器是众多玩家关注的焦点,由于体验服通常部署在海外服务器,国内用户直连往往面临高延迟、频...
CS掉帧卡顿怎么办?全面解决C... 反恐精英(CS)最初作为《半条命》的第三方模组诞生,凭借其高度平衡的竞技机制与快节奏对抗体验,迅速成...
EA服务器连接失败怎么办?常见... 对于热衷体育类游戏的玩家而言,EASports系列无疑是行业标杆,尤其是其足球题材作品,在操作精度与...