【发布时间】:2012-09-13 00:18:52
【问题描述】:
我注意到 logcat 缓冲区的大小在不同的设备上有所不同。假设我在我的设备上有 root 权限,有没有办法在运行时更改主缓冲区的缓冲区大小?如果不是,那么假设我可以重建 Android 映像,我该如何在编译时更改它?我希望将其放大以用于诊断目的。
【问题讨论】:
-
不错的文档在elinux.org/Android_logger。
标签: android
我注意到 logcat 缓冲区的大小在不同的设备上有所不同。假设我在我的设备上有 root 权限,有没有办法在运行时更改主缓冲区的缓冲区大小?如果不是,那么假设我可以重建 Android 映像,我该如何在编译时更改它?我希望将其放大以用于诊断目的。
【问题讨论】:
标签: android
“开发者选项”中的“记录器缓冲区大小选项”
它允许将大小更改为 64k 和 16M 之间的几个值。
adb logcat -g 然后立即显示更新限制。
在 5.1.1 上测试,this answer 声称这是最近添加的。
【讨论】:
设置日志环缓冲区的大小
adb logcat -G <size>
附加 K 或 M 表示千字节或兆字节
示例:adb logcat -G 512K
【讨论】:
adb logcat -g
adb logcat -G 16M # 16M can be replace by (128K ~ 16M)
adb logcat -b system -G 8M # system can be replaced with 'main' or 'crash'
【讨论】:
-G 20M,它似乎也适用..?
persist.logd.size。
据新闻组Android 开发者,logcat buffer size:
设备上的日志缓冲区为 64 KB。时间戳、进程 ID、 和日志级别以紧凑的格式存储,因此您实际上可能会得到
logcat -d -v <mode>中超过 64 KB 的格式化数据。
【讨论】:
adb logcat -g 检查缓冲区信息时,我得到了 256Kb。
不,根据here,设备上的日志缓冲区似乎是 64 KB。时间戳、进程 ID 和日志级别以紧凑的格式存储,因此您实际上可能会从 logcat -d -v <mode> 中获得超过 64 KB 的格式化数据。
另请参阅 Stack 溢出问题 What is the size limit for Logcat?。
无论如何,为了在别处保存日志,您有 Reading and Writing Logs。这也许对你有帮助。
【讨论】:
缓冲区大小由内核决定,可在 */drivers/staging/android/logger.c 中找到。
使用的缓冲区和大小随 Android 版本而变化。 Android 3.0 (Honeycomb) 和更新版本也有一个系统缓冲区,所有四个都是 256 KB。你必须重新编译内核才能改变它。
【讨论】:
你可以在属性文件android-studio\bin\idea.properties中增加idea.cycle.buffer.size=1024的值。这对我有用。
【讨论】:
为了通过 adb 将特定 Android 设备的 logcat 缓冲区设置为 16Mb,我使用了:
adb -s 2615a1d4e3174a6e logcat -G 16M
但你可以只使用:
adb logcat -G 16M
或者设置之前的缓冲区大小:
adb logcat -G 256K
【讨论】: