Как сохранить содержимое LogCat в файл? - PullRequest
29 голосов
/ 25 ноября 2011

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

Ответы [ 10 ]

38 голосов
/ 25 ноября 2011

Чтобы сохранить содержимое Log cat в файл, вам нужно перенаправить в папку инструментов платформы android sdk и нажать команду ниже

adb logcat > logcat.txt

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

20 голосов
/ 13 сентября 2012

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

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

16 голосов
/ 31 января 2013

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

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

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

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

Подробнее о logcat здесь .

11 голосов
/ 05 февраля 2015

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

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

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

Теперь ваша команда выглядит так:

adb -d logcat com.example.example:V > logfileName_WithPath.txt
9 голосов
/ 19 декабря 2015

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

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

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

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

3 голосов
/ 25 ноября 2011

Используйте logcat инструмент с переключателем -d или -f и exec () метод.

2 голосов
/ 13 июня 2016
String filePath = folder.getAbsolutePath()+ "/logcat.txt"; 
Runtime.getRuntime().exec(new String[]{"logcat", "-f", filePath, "MyAppTAG:V", "*:E"});
1 голос
/ 11 апреля 2018

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

adb shell logcat -d -v time -t "$(date '+%m-%d %H:%M:%S.%3N' -d '30 minutes ago')" > log_name.log
1 голос
/ 22 марта 2018

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

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

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

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

1 голос
/ 19 февраля 2015

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

...