Как сохранить содержимое LogCat в файл?

Я добавил строки отладки (используя Log.d ()) и хотите увидеть их в контексте из содержимого logCat. Значок " сохранить "для LogCat имеет подсказку" сохранить выбранные элементы", но должен быть быстрый способ просто сохранить все содержимое или выбрать все содержимое, но я не вижу, как это сделать.

10 ответов


вы не получаете ответа, который ищете, не так ли.

два способа сделать то, что вы хотите: 1) Щелкните правой кнопкой мыши в окне сообщения logcat, выберите Выбрать все. Тогда ваше сохранение будет все сообщения logcat в этом окне (включая те, которые прокручиваются вне поля зрения).
2) когда фокус находится в окне сообщений logcat, введите control-A, это выберет все сообщения. Потом сохранить и т. д. так далее.


чтобы сохранить содержимое журнала cat в файл, вам нужно перенаправить в папку инструментов платформы Android sdk и нажать следующую команду

adb logcat > logcat.txt

будет создан файл с именем " logcat.txt " в папке platform-tools. вы можете изменить имя в соответствии с вашими интересами. наслаждайтесь


чтобы сохранить журнал LogCat в файл программно на вашем устройстве, используйте, например, этот код:

String filePath = Environment.getExternalStorageDirectory() + "/logcat.txt";
Runtime.getRuntime().exec(new String[]{"logcat", "-f", filepath, "MyAppTAG:V", "*:S"});

"MyAppTAG:V" устанавливает уровень приоритета для всех тегов в verbose (низший приоритет)

"*:S" устанавливает уровень приоритета для всех тегов в "silent"

дополнительная информация о logcat здесь.


В дополнение к ответу на Динеш Праджапати используйте

 adb -d logcat <your package name>:<log level>

где-d для устройства, и вы также можете выбрать-e вместо журнала эмулятора и уровень журнала a/d/i/v/e / w etc.

теперь ваша команда звучит так:

adb -d logcat com.example.example:V > logfileName_WithPath.txt

Откройте командную строку и найдите adb.exe (это будет в вашем Android-sdk / platform-tools)

adb logcat -d > <path-where-you-want-to-save-file>/filename.txt

Если вы опустите путь, он сохранит logcat в текущем рабочем каталоге

параметр-d указывает, что вы сбрасываете текущее содержимое, а затем выходите. Предпочитайте notepad++, чтобы открыть этот файл, чтобы вы могли получить все в правильном читаемом формате.



String filePath = folder.getAbsolutePath()+ "/logcat.txt"; 
Runtime.getRuntime().exec(new String[]{"logcat", "-f", filePath, "MyAppTAG:V", "*:E"});

Если вы находитесь в окне консоли для устройства и если вы используете Teraterm, то из меню сделайте файл | журнал и он автоматически сохранится в файл.


дополнительный совет для программного подхода:

String filePath = Environment.getExternalStorageDirectory() + "/logcat.txt";
Runtime.getRuntime().exec(new String[]{"logcat", "-f", filepath, "MyAppTAG:V", "*:S"});

это открывает непрерывный выходной поток между logcat и предоставленным файлом. Это может привести к взаимоблокировке, если вы ждете процесс, возвращенный exec, или исключение, если предоставленный файл преждевременно удален.

Я обнаружил, что в том числе флаг"- d " просто сбрасывает logcat и закрывает соединение, что предотвращает вышеуказанное поведение.


дополнительный совет, если вы хотите, чтобы журнал отображался только за последние полчаса с метками времени или в другое установленное время. Настройте формат даты в соответствии с вашей системой. Этот работает на Ubuntu 16.04 LTS:

adb shell logcat -d -v time -t "$(date '+%m-%d %H:%M:%S.%3N' -d '30 minutes ago')" > log_name.log