【问题标题】:How to change size of logcat buffer in Android?如何在 Android 中更改 logcat 缓冲区的大小?
【发布时间】:2012-09-13 00:18:52
【问题描述】:

我注意到 logcat 缓冲区的大小在不同的设备上有所不同。假设我在我的设备上有 root 权限,有没有办法在运行时更改主缓冲区的缓冲区大小?如果不是,那么假设我可以重建 Android 映像,我该如何在编译时更改它?我希望将其放大以用于诊断目的。

【问题讨论】:

标签: android


【解决方案1】:

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

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

adb logcat -g 然后立即显示更新限制。

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

【讨论】:

  • 确实,现在才发现!
【解决方案2】:

设置日志环缓冲区的大小

adb logcat -G <size> 

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

示例:adb logcat -G 512K

【讨论】:

    【解决方案3】:

    查看当前缓冲区大小

    adb logcat -g
    

    设置所有类型的缓冲区大小(main、system、crash)

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

    设置特定类型的缓冲区大小(main、system、crash)

    adb logcat -b system -G 8M # system can be replaced with 'main' or 'crash'
    

    【讨论】:

    • 我刚试过-G 20M,它似乎也适用..?
    • @YoavFeuerstein 一些制造商/操作系统可能会覆盖该标准,因此可能会有例外。
    • 感谢您的警告!您是否知道任何具体示例以及它如何影响此命令?
    • 你的情况就是这种偏差的例子
    • stackoverflow.com/a/57657874/137646 找到我的答案。引导选项基于属性persist.logd.size
    【解决方案4】:

    据新闻组Android 开发者logcat buffer size

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

    【讨论】:

    • 是否应该更新缓冲区大小?当我运行adb logcat -g 检查缓冲区信息时,我得到了 256Kb。
    • @Cosmoandcat 该数字在 Android 2.4 及更低版本中是准确的。您可能使用的是 Android 4.x。大小在 3.0 中增加。更新的性质。
    • 如果要设置特定缓冲区类型的大小,请参阅答案stackoverflow.com/a/56730011/1084174
    【解决方案5】:

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

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

    无论如何,为了在别处保存日志,您有 Reading and Writing Logs。这也许对你有帮助。

    【讨论】:

      【解决方案6】:

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

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

      【讨论】:

        【解决方案7】:

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

        【讨论】:

          【解决方案8】:

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

          adb -s 2615a1d4e3174a6e logcat -G 16M

          但你可以只使用:

          adb logcat -G 16M

          或者设置之前的缓冲区大小:

          adb logcat -G 256K

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-10-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多