Каков предел размера для Logcat и как изменить его емкость?

Я считаю, что Logcat - это круглый магазин, и мне интересно, что предел перед перезаписыванием.

Предположительно это означает, что его временной диапазон будет варьироваться в зависимости от использования.

Есть ли способ расширить его емкость?

Ответ 1

Чтобы увидеть размер, используйте -g

$ adb logcat -g
ring buffer is 64Kb (63Kb consumed), max entry is 4096b, max payload is 4076b

Ответ 2

Начиная с Android 5.0, Developer Options показывает/позволяет увеличить размер кольцевого буфера.

Developer Options ScreenShot

Ответ 3

Как уже упоминалось, вы можете увидеть размер кругового буфера с logcat -g. На моем Galaxy Nexus это 256 КБ:

[email protected]:/ $ logcat -g
/dev/log/main: ring buffer is 256Kb (255Kb consumed), max entry is 4096b, max payload is 4076b
/dev/log/system: ring buffer is 256Kb (0Kb consumed), max entry is 4096b, max payload is 4076b

Если вам нужно сохранить непрерывный журнал дольше, вы можете просто открыть новую оболочку adb и набрать

logcat -f myfile.log

Эта команда перенаправляет записи журнала в файл myfile.log на постоянной основе и не вернется, пока вы не нажмете ctrl-c, чтобы остановить ее. Теперь вернитесь к исходной оболочке adb и введите команду, которую вы хотите записать, и весь ее вывод (более 256 КБ в моем случае) будет сохранен в myfile.log.

Ответ 4

Размер буфера определяется ядром, найденным в */drivers/staging/android/logger.c

Какие буферы используются и размер изменился в версиях Android. Android 3.0 и новее также имеют системный буфер, а все четыре - 256 кб. Вы должны перекомпилировать ядро, чтобы изменить его.

Ответ 5

Здесь, как изменить емкость буфера журнала в некоторых версиях Android:

adb logcat -G <size>: установите размер буфера журнала. Можно добавить K или M в конце, чтобы указать килобайты или мегабайты.

(Источник: документация logcat)

Однако в какой версии Android эта опция не указана. Я вижу, что на моем устройстве Android 4.2.2 это не признанный вариант.

Ответ 6

Samsung Galaxy S4 (Android 4.3) размер logcat:

  • main: 1 MB
  • : 512 КБ

Ответ 7

Если вам нужно изменить значение с помощью оболочки Android таким образом, чтобы он выдержал перезагрузку, вы можете использовать свойство persist.logd.size следующим образом:

setprop persist.logd.size 16M

Вам, вероятно, нужно перезагрузиться, чтобы настройки вступили в силу. Это то же свойство, которое изменяется настройками разработчика.