如何在Android中更改logcat缓冲区的大小?

时间:2012-09-13 00:18:52

标签: android

我注意到logcat缓冲区的大小因设备而异。假设我的设备上有root权限,有没有办法在运行时更改主缓冲区的缓冲区大小?如果没有,那么假设我可以重建Android映像,如何在编译时更改它?我正在寻求扩大它以用于诊断目的。

8 个答案:

答案 0 :(得分:12)

“开发者选项”中的“记录器缓冲区大小选项”

它允许将大小更改为64k到16M之间的几个值。

Arrays.asList( myService.getCall1(), myService.getCall2()).parallelStream().map(call->call.request()); 然后立即显示更新限制。

在5.1.1上测试过,this answer声称它是最近添加的。

答案 1 :(得分:8)

设置日志环缓冲区的大小

adb logcat -G <size> 

附加K或M以表示千字节或兆字节

示例:adb logcat -G 512K

答案 2 :(得分:7)

根据新闻组 Android开发者 logcat buffer size

  

设备上的日志缓冲区为64 KB。时间戳,进程ID,   和日志级别以紧凑的格式存储,因此您可能实际获得   logcat -d -v <mode>中超过64 KB的格式化数据。

答案 3 :(得分:3)

不,按照here,设备上的日志缓冲区似乎是64 KB。时间戳,进程ID和日志级别以紧凑格式存储,因此您实际上可以从logcat -d -v <mode>中获得超过64 KB的格式化数据。

另请参阅Stack Overflow问题 What is the size limit for Logcat?

无论如何,要将日志保存到其他地方,您需要 Reading and Writing Logs 。那也许可以帮到你。

答案 4 :(得分:3)

缓冲区大小由内核决定,可在* / drivers / staging / android / logger.c中找到。

使用哪些缓冲区并且Android版本的大小已更改。 Android 3.0(Honeycomb)和更新版本也有一个系统缓冲区,所有四个都是256 KB。你必须重新编译内核才能改变它。

答案 5 :(得分:3)

查看当前缓冲区大小

id

设置所有类型的缓冲区大小(主要,系统,崩溃)

adb logcat -g

设置特定类型的缓冲区大小(主要,系统,崩溃)

adb logcat -G 16M # 16M can be replace by (128K ~ 16M)

答案 6 :(得分:0)

您可以在属性文件android-studio \ bin \ idea.properties中增加idea.cycle.buffer.size = 1024的值。这对我有用。

答案 7 :(得分:0)

要通过adb将特定Android设备的logcat缓冲区设置为16Mb,我使用了:

adb -s 2615a1d4e3174a6e logcat -G 16M

但你可以使用:

adb logcat -G 16M

或者使用以下内容设置之前的缓冲区大小:

adb logcat -G 256K