Logcat vs Logdog или снятся ли андроидам цветные логи?

Когда разрабатываешь под Android в терминале и виме, и когда не пользуешься отладчиками — логи становятся твоим основным подспорьем. И долгие годы я смотрел в черно-белую скуку стандартного adb logcat. Конечно, использовал grep, чтобы отфильтровать только нужные логи, конечно использовал встроенные средства фильтрации, конечно использовал различные форматы вывода logcat (time, brief, threadtime, long, …).

Вообще стандартный logcat делает много ненужных вещей, например adb logcat -f перенаправляет вывод в файл (аналогично adb logcat > file), adb logcat -t печатает несколько последних строк (аналогично adb logcat | tail -n ). Еще в стандартном logcat неудобная фильтрация по тегам. Разработчики привыкли использовать разные теги в разных Activity/Services в приложении, поэтому фильтровать по всем тегам приложения сложно и неприятно.

А хотелось иметь возможность получать вывод только твоего приложения (или нескольких приложений), желательно в различных форматах (обычный, с временными отметками, с метками потоков, сокращенный). Так я узнал, что существуют proclogcat для фильтрации вывода по процессам и coloredlogcat для подсветки синтаксиса. И в связке они работают весьма неплохо, пока мне не понадобилось видеть временные отметки в логах. Здесь парсеры этих утилит сломались. Да, существуют и более мощные и навороченные логгеры. Но я пошел своим путем.

Logdog — это один скрипт в одном файле, написанный на python. Позволяет делать всё, о чем я писал выше, поддерживает несколько форматов вывода. Например:

  • logdog com.android.phone — вывести логи телефонного приложения
  • logdog com.android.phone com.android.settings — логи телефона и настроек
  • logdog -v time com.android.phone — логи с метками времени
  • logdog -v time com.android.phone | grep Exception — получить только исключения
  • Исходник можно взять на https://bitbucket.org/zserge/logdog/src
    Там же на bitcbuket в wiki описано как настроить автодополнение имён пакетов для zsh/bash.
    В скрипте чуть больше сотни строк кода и никаких внешних зависимостей, кроме самого adb

    Буду рад, если кому-то такая утилитка поможет.

    Да, кстати, если от пользователей/заказчиков кто-то из вас получает длиннющие логи в текстовых файлах — теперь logdog может разукрасить и отфильтровать такие логи тоже. Так что приятного использования!

    Реклама

    Добавить комментарий

    Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

    Логотип WordPress.com

    Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

    Фотография Twitter

    Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

    Фотография Facebook

    Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

    Google+ photo

    Для комментария используется ваша учётная запись Google+. Выход / Изменить )

    Connecting to %s