- Logcat
- Быстрое отключение журналирования
- LogCat на устройстве
- Логирование в Android приложениях
- Пытаемся навести порядок
- 990x.top
- Простой компьютерный блог для души)
- Папка Logs на Андроиде — что это такое?
- Папка Logs на Андроиде — что это?
- Зачем нужны Log-файлы?
- Заключение
- Простая и очевидная замена android.util.Log
- Совместимое API — залог простой миграции
- А в чем преимущество?
- Уговорили, где взять?
- Run log android что это
Logcat
В Android SDK входит набор инструментов, предназначенных для отладки. Самый важный инструмент при отладке — это LogCat (очень красивое название, которое можно перевести как Логичный Кот). Он отображает сообщения логов (журнал логов), рассылаемые при помощи различных методов.
Рассмотрим на примере. Очень часто программисту нужно вывести куда-то промежуточные результаты, чтобы понять, почему программа не работает. Особо хитрые временно размещают на экране текстовую метку и выводят туда сообщение при помощи метода textView.setText(«Здесь был Васька»). Но есть способ лучше. В Android есть специальный класс android.util.Log для подобных случаев.
Класс android.util.Log позволяет разбивать сообщения по категориям в зависимости от важности. Для разбивки по категориям используются специальные методы, которые легко запомнить по первым буквам, указывающие на категорию:
- Log.e() — ошибки (error)
- Log.w() — предупреждения (warning)
- Log.i() — информация (info)
- Log.d() — отладка (degub)
- Log.v() — подробности (verbose)
- Log.wtf() — очень серьёзная ошибка! (What a Terrible Failure!, работает начиная с Android 2.2)
- Log.meow() — когда жрать дадут? (MEOW!) Недокументированный метод, используйте на свой страх и риск. Работает не на всех устройствах
В первом параметре метода используется строка, называемая тегом. Обычно принято объявлять глобальную статическую строковую переменную TAG в начале кода:
Некоторые в сложных проектах используют следующий вариант, чтобы понимать, в каком классе происходит вызов:
Далее уже в любом месте вашей программы вы вызываете нужный метод журналирования с этим тегом:
Также используется в исключениях:
Пользователи не видят этот журнал. Но, вы, как разработчик, можете увидеть его через программу LogCat, доступный в Android Studio.
Полный вид сообщения выглядит следующим образом.
03-09 20:44:14.460 3851-3879 / ru.alexanderklimov.cat I/OpenGLRenderer : Initialized EGL, version 1.4
- 03-09 20:44:14.460 Date/Time
- 3851-3879 Process & Thread IDs
- ru.alexanderklimov.cat Package name
- I/OpenGLRenderer Tag
- Initialized EGL, version 1.4 Message
Подобные длинные сообщения не всегда удобны для чтения. Вы можете убрать ненужные элементы. Для этого выберите значок LogCat Header в виде шестерёнки и уберите флажки у опций.
В LogCat вы можете отфильтровать сообщение по заданному типу, чтобы видеть на экране только свои сообщения. Для этого выберите нужный тип тега из выпадающего списка Verbose.
Типы сообщений можно раскрасить разными цветами через настройки File | Settings | Editor | Colors Scheme | Android Logcat.
Для отслеживания сообщений с заданным текстом введите в поле поиска нужную строку и нажмите Enter.
Также активно используйте варианты из других выпадающих списков. Например, выбирайте свой пакет из второй колонки, а в последней выбирайте Show only selected application. Для более точной настройки используйте Edit Fiter Configuration.
По умолчанию, окно LogCat выводится в нижней части студии. При желании, можно выбрать другие варианты через значок настроек окна.
LogCat также можно запустить из командной строки:
Параметры командной строки смотрите в документации.
Быстрое отключение журналирования
Настоятельно рекомендуется удалять все вызовы LogCat в готовых приложениях. Если проект очень большой и вызовы журналирования разбросаны по всем местам кода, то ручное удаление (или комментирование) становится утомительным занятием. Многие разработчики используют следующую хитрость — создают обёртку вокруг вызова методов LogCat.
Теперь остаётся только присвоить нужное значение переменной isDebug перед созданием готового apk-файла для распространения.
Способ устарел. В 17-й версии Android Build Tools появился класс BuildConfig, содержащий статическое поле DEBUG. Можно проверить следующим образом:
Способ для продвинутых — например, требуется релиз с выводом в лог, или наоборот — debug с выключенным выводом. В этом случае можно создать собственный параметр и добавить его в секцию buildType gradle-файла:
В этом случае конфигурация releaseWithLog будет являться релизной сборкой с ведением логов. Естественно, в коде слегка поменяется проверка:
LogCat на устройстве
Попался в сети пример для просмотра сообщений LogCat на устройстве. С примером не разбирался, оставлю здесь на память.
Источник
Логирование в Android приложениях
Уверен, что всем разработчикам приложений на платформе 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 , который делает это автоматически.
Использование класса очень простое:
Результатом логирования данным способом будут примерно следующие строки:
Примечание:
По понятным причинам, данный способ мало пригоден для приложений «пропущенных» через обфускатор.
В общем-то все.
Прошу прощения, если эта статья показалась слишком тривиальной для хабра.
Источник
990x.top
Простой компьютерный блог для души)
Папка Logs на Андроиде — что это такое?
Приветствую друзья. Данная заметка расскажет о папке Logs, которую можете заметить на смартфоне под управлением операционной системы Android.
Папка Logs на Андроиде — что это?
Содержит логи — специальные файлы, содержащие служебную информацию о работе некоторых системных функций/приложений телефона. Записываются ошибки, успешный результат, а также дополнительная информация.
Важно: данные файлы несут только информационный характер.
Стандартное расположение папки:
Без рут-доступа данная папка пользователю недоступна. Однако файлов внутри может становиться больше, свободное место телефона уменьшается.
В интернете найдена инструкция очистки логов системы:
- Наберите комбинацию *#9900#, на дисплее отобразится служебное меню.
- Нажмите пункт Delete dumpstate/logcat, кликните ОК.
- После данного действия логи телефона удалятся.
Способ был проверен на устройстве Самсунг Гелекси без рут-доступа. Действия проводить в стандартном диалере.
Данный способ на некоторых устройствах может не работать.
Зачем нужны Log-файлы?
Для обычных пользователей особой ценности не представляют. Внутри много системной информации, в которой нужно разбираться, чтобы извлечь пользу.
Обычно полезны программистам, которые анализируя логи находят ошибку в софте и исправляют.
Кроме OS Android, подобные файлы присутствуют в Windows, Linux и других операционках.
Заключение
- Папка Logs на Андроиде — содержит специальные файлы-отчеты, в которые записывается информация об ошибочных/успешных операциях некоторых программ/функций операционной системы Android.
- Данные файлы могут быть полезны при поиске проблем смартфона.
Источник
Простая и очевидная замена android.util.Log
Однажды я писал один проект. Проект выдался большим и писал я его долго.
Там было все что только можно было запихнуть — и retrolambda/java8, и пара десятков
других библиотек (жадность заказчика до новых фич не знала границ, а потому
росло число зависимостей).
Но речь даже не об этом. Настало время делать релиз. И оказалось что в проекте
множество логов и неплохо бы их из релизной сборки убрать. Всем известный
способ с ProGuard не сработал с первого раза. С каждым новым «-keep»
приложение падало в каком-то новом месте. Так что ProGuard пришлось отключить
до лучших времен.
Все это время меня не покидало ощущуение, что управление уровнем логировния c
помощью изменения байт-кода — это нелепо. И тогда за полчаса я написал свой
примитивный логгер.
Обычно я редко довожу свои проекты до конца, но тут он был настолько прост — что теперь он лежит на гитхабе, желающие — пользуйтесь.
Совместимое API — залог простой миграции
Одна из причин почему я не стал использовать Timber — потому что мои пальцы
привыкли печатать Log.d. Свой класс я назвал тоже «Log», а методы сделал совместимыми с «android.util.Log».
Это значит, что если вы захотите соскочить со стандартного логгера — просто
замените импорты. Это можно сделать с помощью sed, или с помощью вашей любимой
IDE.
А в чем преимущество?
Ну вот несколько отрывков кода, показывающие основные фичи логгера:
Уговорили, где взять?
В build.gradle библиотека подключается как обычно:
Вот так можно заменить импорты:
Логгер под лицензией MIT, используйте на здоровье. Там один класс без
зависимостей, всего на 250 строк, так что проект ваш тяжелей/тормозней не станет.
Любые пожелания или багрепорты (особенно с патчами) приветствуются!
Источник
Run log android что это
Многие владельцы Android хотят иметь систему настроенную под себя, со своим оформлением, но далеко не у всех получается с первого раза и все приходится делать заново, не узнав причину, ведь причина может быть самая элементарная: забыли добавить файл, ошиблись в каком то файле и случайно добавили лишний символ, а ведь если вы делали по большой инструкции, несколько часов или дней (в связи такой сложностью, у вас редко бывает время или вы не понимали на тот момент как надо было делать), а у вас ваше приложение не заработало, как-же быть тогда?
Есть одно решение, воспользоваться логом системы — LogCat.
Пользоваться им не очень сложно и делается он запросто, для начала нам необходимо скачать программу ADB, скачать вы её можете — здесь. Распаковываем скачанный архив в папку C:/adb. Открываем командную строку и пишем
и открываем ваше нерабочее приложение, если это статус-бар, то ждём когда он выдаст ошибку. В папке C:/adb будет лежать logcat.txt, его вы вылаживаете сюда или отправляете человеку, который вас попросил, ждёте ответа.
P.S. Тема была специальна создана, дабы всё время не описывать и объяснять, что да как делать.
Сообщение отредактировал WinKarbik — 14.08.14, 16:00
Там есть информация об этом, но возможно не так подробно.
Имеет смысл не распыляться по темам, а написать там, и попросить добавить в шапку той темы.
WinKarbik,
в этом случае, тема просто погрязнет в мусоре других тем, вот и всё.
Та же тема всегда наверху в том разделе.
Источник