No Image

Файлы log на андроиде

1 просмотров
11 марта 2020

Уверен, что всем разработчикам приложений на платформе Android знаком класс Log, позволяющий логировать различные события. По различным причинам, формат записи логов для каждого проекта может отличаться достаточно сильно — начиная от «AAA», «111111» и «I was here» до более-менее внятных — «Opening HTTP connection to habrahabr.ru». Под катом вы найдете пример функции, которая поможет навести порядок в логах.
Данный топик не претендует на оригинальность и универсальность. И поэтому, если в вашем проекте уже существует некий стандарт логирования событий, то смело проходите мимо — топик скорее ориентирован на начинающих разработчиков.

Как правило, ценность логов начинаешь понимать только когда заказчик матерясь отсылает лог на почту и просит засабмитить фикс через 5 минут. И если лог состоит из сообщений невнятного характера, то как минимум, разбр данного лога займет куда больше времени, чем хотелось бы.

Пытаемся навести порядок

Логи существуют для того, чтобы разработчик мог понять что, где и когда произошло. Найти ответ на вопрос «когда произошло» достаточно просто — в логах Андройд записывает время события. Нахождение ответа на вопрос «что произошло» так же не вызывает больших трудностей, если сообщение в лог было написано со смыслом, например: «Opening file. ». Вопрос «где произошло» оказывается наиболее сложным. Если проект большой, то придеться потратить время на нахождение нужного места кода, даже, если лог был написан со смыслом.

Если событие логируется с указанием Throwable (чаще Exception), например, метод public static int d (String tag, String msg, Throwable tr) , то в консоле сообщений будет выведен стек, который поможет быстро идентифицировать место логирования. Но использование данного метода без особой необходимости до безобразия перегрузит лог ненужной информацией.

Читайте также:  Входящие смс за границей платные или нет

Если же логируется просто текст, то при логировании можно явно указывать место вызова. Например:

Однако, писать такое каждый раз — дело утомительное и неблагодарное.

Ниже приведен пример класса Log , который делает это автоматически.

Использование класса очень простое:

Результатом логирования данным способом будут примерно следующие строки:

Примечание:
По понятным причинам, данный способ мало пригоден для приложений «пропущенных» через обфускатор.

В общем-то все.
Прошу прощения, если эта статья показалась слишком тривиальной для хабра.

Очистка логов на андроиде

Когда у смартфонов на системе Android что-то идёт не так, они, бывает, записывают подробности в системный лог. Теоретически, эти логи могут помочь разработчикам исправить проблему; практически, поскольку мы не разработчики, оно нам нафиг не надо. Вдобавок, эти логи сохраняются в папку /data/log, которая (если не рутовать телефон) пользователям недоступна. В результате свободная память в телефоне куда-то девается, а куда – не видно.

Чтобы решить проблему, наберите на телефоне служебный номер *#9900#. Телефон при этом никуда не звонит, зато на экране появляется служебное меню. Выберите в нём второй пункт, Delete dumpstate/logcat, нажмите OK. Всё. Логи удалятся, память освободится.

Проверял на смартфонах Samsung Galaxy. Взламывать и рутовать смартфон для этого не нужно, работает просто так.

Одним из необходимых навыков QA-инженера при тестировании мобильных приложений является снятие логов ошибок или же экстренного завершения работы тестируемого приложения (crash-логов). Сегодня мы с вами разберемся, что же такое логи, для чего они нужны, и рассмотрим некоторые способы их снятия на девайсах с Android.

Для начала давайте с вами все-таки разберемся, что же такое логи?

Логи (или как их еще называют лог-файлы) – это файлы, которые содержат информацию о работе сервера или компьютера, в которые записываются определенные действия программы, а также все действия пользователя над ней. Также иногда можно услышать русскоязычный аналог понятия – журнал.

Читайте также:  Автологин windows server 2008 r2

Для чего вообще нужны логи? Их предназначением является протоколирование операций, выполняемых устройством, для дальнейшего их анализа.

Если рассматривать значение логов в рамках QA-профессии , то для тестировщика ПО главной задачей является грамотное извлечение этих самых логов при воспроизведении ошибки для более детального описания проблемы. Если тестировщик всё сделал правильно, то разработчику будет намного легче разобраться, в чём именно заключается проблема и найти её решение.

Так каким же способом мы можем снять логи с Android девайса?

Комментировать
1 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
Adblock detector