38

I noticed that the size of the logcat buffer varies on different devices. Assuming I have root permissions on my device, is there a way to change the buffer size of the main buffer at runtime? If not, then assuming I can rebuild the Android image, how do I change it at compile time? I'm looking to enlarge it for diagnostic purposes.

Ciro Santilli OurBigBook.com
  • 347,512
  • 102
  • 1,199
  • 985
zer0stimulus
  • 22,306
  • 30
  • 110
  • 141

8 Answers8

22

"Logger buffer size option" in "Developer options"

It allows to change the size to a few values between 64k and 16M.

adb logcat -g then immediately shows the update limit.

Tested on 5.1.1, and this answer claims that it is a recent addition.

Ciro Santilli OurBigBook.com
  • 347,512
  • 102
  • 1,199
  • 985
22

See current buffer size

adb logcat -g

Set all type buffer size (main, system, crash)

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

Set specific type buffer size (main, system, crash)

adb logcat -b system -G 8M # system can be replaced with 'main' or 'crash'
Sazzad Hissain Khan
  • 37,929
  • 33
  • 189
  • 256
16

Set the size of the log ring buffer

adb logcat -G <size> 

Append K or M to indicate kilobytes or megabytes

Example: adb logcat -G 512K

Mickey Tin
  • 3,408
  • 10
  • 42
  • 71
8

According to the newsgroup Android Developers, logcat buffer size:

The log buffers on the device are 64 KB. The timestamp, process ID, and log level are stored in a compact format, so you may actually get more than 64 KB of formatted data out of logcat -d -v <mode>.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
  • 1
    Should the buffer size be updated? I got 256Kb when I ran `adb logcat -g` to check the buffer information. – hackjutsu Jun 01 '15 at 21:06
  • 1
    @Cosmoandcat that number was accurate in Android 2.4 and lower. You are likely on Android 4.x. The size increased in 3.0. Nature of updates. – cde Aug 29 '15 at 10:30
  • See the answer https://stackoverflow.com/a/56730011/1084174 if you want to set size for specific buffer type – Sazzad Hissain Khan Jun 24 '19 at 04:52
3

No, as per here it seems that the log buffers on the device are 64 KB. The timestamp, process ID, and log level are stored in a compact format, so you may actually get more than 64 KB of formatted data out of logcat -d -v <mode>.

See also Stack Overflow question What is the size limit for Logcat?.

Anyway, for saving logs elsewhere, you have Reading and Writing Logs. That maybe could help you.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
pna
  • 5,651
  • 3
  • 22
  • 37
3

The buffer size is determined by the kernel, found in */drivers/staging/android/logger.c.

Which buffers are used and the size has changed with Android versions. Android 3.0 (Honeycomb) and newer also have a system buffer, and all four are 256 KB. You have to recompile the kernel to change it.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
cde
  • 317
  • 1
  • 18
0

You can increase the value of idea.cycle.buffer.size=1024 in property file android-studio\bin\idea.properties. This worked for me.

chaitanya
  • 1,726
  • 2
  • 17
  • 13
0

To set logcat buffer to 16Mb for a specific Android device through adb, I used:

adb -s 2615a1d4e3174a6e logcat -G 16M

But you can use just:

adb logcat -G 16M

Or set previous buffer size with:

adb logcat -G 256K

ViliusK
  • 11,345
  • 4
  • 67
  • 71