Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
#1

Альтернатива LogCat - Программирование Android

09.11.2013, 07:15. Просмотров 2087. Ответов 27

Работаю в студии, до этого был эклипс...

LogCat использую по полной, но он меня не устраивает (ни в Студии, ни в Эклипсе, ни в Идее)!!!

1) Без фильтра читать не возможно. Фильтр иногда слетает. В каждом проекте приходится задавать заново. При переоткрытии проекта фильтр по умолчанию убран.
2) Цветов, которые могу использовать, всего 5, расширить нельзя (для комфорта нужно хотя-бы 10-15). Нельзя задать несколько цветов в одной строке. Иногда хочется чтобы строку FF88FF в логах закрасило нужным цветом.
3) Кроме моего сообщения переданного из явы, я должен еще и видеть дату-время сообщения(зачем? полторы секунды назад?) и название фильтра, и название процесса-отправителя и код отправителя... Лишняя информация занимает до 50% длины окна. Сдвигать бесполезно - следующее сообщение возвращает прокрутку назад (в начало строки).
4) Шрифт быстро изменить не получается. Ни размер ни название.
5) Сложные фильтры не возможны (только рыжие и синие, два фильтра по тегам, наличие "или" фильтров по содержимому)
6) Окошко не отделимо от окна среды, а если отделить, то ведет себя не так как хотелось - поверх текста мешает, выпрыгивает само, сжимать бесполезно из-за лишнее информации. Хотелось бы задать прозрачность, приклеить к бортику, убрать бортики.

Теперь вопрос... Меня одного это не устраивает? Вы привыкли или Вас устраивает? Есть ли альтернативные разработки от сторонних разработчиков? Это проблема виндовых версий или в линуксе что-то по другому? Имеет смысл писать такое "для всех" или эта утилитка полезна только мне (встрою все настройки еще на этапе компиляции "под меня")?

Пока что нашел только консольную(дос-мод) разработку на питоне которая раскрашивает черно-белый лог и программа на самом андроиде выводящая этот лог на рабочий стол (бесполезна если тестируется МОЯ программа перекрывая экран)

Начал разбирать механизм LogCat под Windows... (Кстати многие ЗДЕСЬ работают под Линуксом, а не под Windows?) ... вроде технически не тяжело перехватить, обработать "по другому". Причем даже не мешая стандартному обработчику. Пока-что проблема возникла только с русскими символами (юникод в ДОСе)... Можно попробовать решить средствами Win. Можно перекодировать при передаче в анси, а в досе (Делфи) назад.

Яву (обьектную) еще знаю плохо - можно ли ПОДМЕНИТЬ android.util.Log в МОЕМ проекте своим классом Log, а из него вызывать стандартную обработку с уже измененной строкой? Или лучше создать нечто вроде MyLog?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2013, 07:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Альтернатива LogCat (Программирование Android):

LogCat - Программирование Android
Здравствуйте. Подскажите как правильно читать лог/LogCat и определять где находится ошибка ? Вот у меня возникла ошибка , как...

logcat - Программирование Android
Уважаемые пользователи, подскажите как просмотреть логи в приложении, если даже эмулятор не запускается из-за недостатка оперативной памяти.

Logcat на устройстве - Программирование Android
Тестирую приложение, парсит сайт. На эмуляторе все проходит хорошо, а на телефоне иногда крашится в момент соединения к сайту. Как...

Ошибки LogCat - Программирование Android
Ребят прошу у вас помощи, все никак не могу разобраться с ошибками, при запуске приложения сразу вылетает Логи LogCat: (буду очень...

Ошибки в logcat - Программирование Android
День добрый! Решил написать простенькое приложение вот с этого примера ...

Вывод LogCat - Программирование Android
Вопрос заключается в следующем: пишу одно приложение, при этом использую опенгл. Логкет выдает некие сообщения: GC_CONCURRENT,GC_EXPLICIT,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
11.11.2013, 20:22  [ТС] #2
... не ожидал тишины в ветке! Я все еще хочу услышать Ваши мнения!!!!

1) Вас устраивает функционал встроенного LogCat?
2) Есть ли ему альтернатива (о которой я не слышал)?
3) Logcat под Win отличается от Linux?
4) Хотите поучаствовать в отладке альтернативной программы под Win?

...ожидал целую дискусию - от "а меня устраивает", "сначало было трудно, но теперь привык и менять ничего не хочу", "я вообще им не пользуюсь", "согласен с вашими перечисленными вами недостатками ... - остальное устраивает", "а мне в нем не нравится ... из не перечисленых".
0
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
12.11.2013, 00:08 #3
Цитата Сообщение от Tester64 Посмотреть сообщение
1) Вас устраивает функционал встроенного LogCat?
устраивает
Цитата Сообщение от Tester64 Посмотреть сообщение
2) Есть ли ему альтернатива (о которой я не слышал)?
без понятия
Цитата Сообщение от Tester64 Посмотреть сообщение
3) Logcat под Win отличается от Linux?
без понятия
Цитата Сообщение от Tester64 Посмотреть сообщение
4) Хотите поучаствовать в отладке альтернативной программы под Win?
нет
1
verylazy
Заблокирован
12.11.2013, 10:59 #4
Я несколько раз садился писать развернутый ответ, но все время стирал текст.
Абсолютно согласен с V0v1k.
0
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
13.11.2013, 00:16  [ТС] #5
Тему закрываю!

p.s. программа вполне готова. Как по мне - удобнее и быстрее...
0
Hank
51 / 42 / 3
Регистрация: 28.12.2011
Сообщений: 253
13.11.2013, 10:08 #6
p.s. программа вполне готова. Как по мне - удобнее и быстрее...
т.е. все недостатки стокового LogCat вы превратили в плюшки в этой проге?

Меня встроенный LogCat устаивает целиком и полностью. Хочется взглянуть на вашу альтернативу, но работаю в Линукс поэтому увы...
0
mobrsa
1 / 1 / 0
Регистрация: 08.07.2015
Сообщений: 9
08.07.2015, 16:18 #7
Работаю в IDEA под Windows. Стандартные средства logcat вообще не устраивают. Со всеми недостатками, кторые вы перечислили полностью согласен. Альтернативы пока не встречал. Как можно посмотреть вашу разработку (альтернативу logcat)? Очень интересно, могу помочь её в разработке.
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
10.07.2015, 09:49 #8
Цитата Сообщение от Tester64 Посмотреть сообщение
p.s. программа вполне готова. Как по мне - удобнее и быстрее...
Это типа поматросил и бросил? Программа то где?
0
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
10.07.2015, 10:13 #9
Цитата Сообщение от Rube Посмотреть сообщение
Это типа поматросил и бросил? Программа то где?
А еще лучше общее описание как можно получить логи своей программой)
0
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
10.07.2015, 20:29  [ТС] #10
Цитата Сообщение от Rube Посмотреть сообщение
Это типа поматросил и бросил? Программа то где?
(последнее время редко здесь бываю)
Получил столько отрицательных отзывов здесь и не только, что решил программу оставить только в личной коллекции... В опенсорс или во фри выкладывать передумал... Сильно местные испортили настроение!!! (местные "консольные линуксоиды")

Разработку остановил... на уровне удобном лишь мне. Там даже позиция adb намертво прописана (нужно каждый раз менять в настройках) и перезагрузку adb раз в несколько часов делаю почти в ручную. Руки не дошли до редактора настроек...
Редактор цветов и фильтров даже на поверхность не вывел для настроек юзером - встроен в на уровне кода Делфи.
ОЧЕНЬ полезной оказалась для чтения ДЛИННОГО лога из коротких сообщений. Я им отлаживал "ручной/рисованый" список. Когда куча потоков и куча сообщений валилось при каждой отрисовке каждой ячейки... Но... год назад слез с Делфи и проект приостановил... может перепишу на С++ но не скоро - я там новичок и времени столько нет, как в 2013м!

В программу встроена система лицензирования под хард (давно написал - много лет назад - вставляю во все свои проекты) - снимать не хочу (пока - все еще обижен на сообщество! ), но с несколькими могу поделиться результатом (в личку). Вместо Log.w использую свой отладочный класс Rep.r - короче и проще получилось. Еще нюанс (не стал вырезать ради "неблагодарных тестеров") - слово-фильтр прописано намертво - WLOGCAT. (день-два нужно отвязывать от жестких путей и тестить)

Цитата Сообщение от Spelcrawler Посмотреть сообщение
А еще лучше общее описание как можно получить логи своей программой)
Я еле еле смог скрытно перехватить консоль. Запустил адб из делфи как "привязанный/внутренний" поток. Сам получаю результат. То-ли получаю не правильно, то-ли поток "срывается", но после нескольких миллионов строк приходится нажимать кнопку "перегрузить". Но... когда разбирался нашел возможность пустить лог уже с простым фильтром в текстовик. В консольной версии на питоне находил "примочку" которая должна была раскрасить лог, но запустить не смог - похоже работала только под линукс...

Не по теме:

p.s. а в планах было сделать мега-отладочный "комбаин"... Когда-то подобный сделал под Делфи - потом годами использовал.. хех...

1
mobrsa
1 / 1 / 0
Регистрация: 08.07.2015
Сообщений: 9
11.07.2015, 08:44 #11
Да ни слушай ты никого, инструмент который ты делал очень полезен. Большинству просто даже не с чем сравнить. Большенство пользуется средствами встроенными в IDE. Те кто пользуется напрямую через консоль

adb logcat [<Ключи>] [<фильтр>]

те наверно более менее довольны, т.к. там можно побольше настроить, хотя бы формат вывода.

Но всё равно чувствуется нехватка инструмента в этой области.
Если дать пощупать то думою многие бы отказались от того что используют. Я например не понимаю почему в IDEA до сих пор не обратили внимания на эту проблему... да они сделали там раскраску лога, фильтры, но всё раелизовано както не очень. Самое главное то что нельзя определить свой формат строки, там половина экрана занимает время вывода, имя пакета и это убрать никак нельзя (я про IDEA). Например:

07-11 06:42:31.543 21199-21199/org.fald.android.game D/myLogTag﹕ Hello LogCat

вот эта часть строки "07-11 06:42:31.543 21199-21199/org.fald.android.game" фактически не нужна в 99.99% случаев.


Ещё приведу тут небольшой фрагмент доки по abd logcat, кому-то пригодиться:

adb logcat [<Ключи>] [<фильтр>] Посмотреть логи с отладочной информацией:

Команду logcat можно использовать с машины разработки
$ adb logcat
или из удаленного shell
# logcat Каждое сообщение лога в Android имеет тэг и приоритет
Тэг – это строка указывающая компонент системы, от которого принято сообщение (например: View для системы view)
Приоритет – имеет одно из нижеследующих значений (в порядке от меньшего к большему):
V - Verbose (Низший приоритет).
D - Debug
I - Info
W - Warning
E - Error
F - Fatal
S - Silent (Наивысший приоритет, при котором ничего не выводится).

Получить список тэгов, используемых в системе, вместе с их приоритетами можно запустив logcat. В первых двух столбцах каждого из выведенных сообщений будут указаны <приоритет>/<тэг>.
Пример выводимого logcat сообщения:
I/ActivityManager( 585): Starting activity: Intent { action=android.intent.action...}

Для уменьшения вывода лога до приемлемого уровня нужно использовать выражения фильтра. Выражения фильтра позволяют указать системе нужные комбинации <тэг> и <приоритет>, остальные сообщения система не выводит.
Выражения фильтра имеют следующий формат <тэг>:<приоритет> ..., где <тэг> указывает нужный тэг, <приоритет> указывает минимальный уровень приоритета для выбранного тэга. Сообщения с выбранным тэгом и приоритетом на уровне или выше указанного записываются в лог. Можно использовать любое количество пар <тэг>:<приоритет> в одном выражении фильтра. Для разделения пар <тэг>:<приоритет> используется пробел.

Пример ниже выводит в лог все сообщения с тэгом "ActivityManager" с приоритетом "Info" или выше, и сообщения с тэгом "MyApp" и приоритетом "Debug" или выше:
adb logcat ActivityManager:I MyApp *:S
Последний элемент в выражении фильтра *:S устанавливает приоритет "silent" для всех остальных тэгов, тем самым обеспечивая вывод сообщений только для "View" и "MyApp". Использование *:S – это отличный способ для вывода в лог только явно указанных фильтров (т.е. в выражении фильтра указывается "белый список" сообщений, а *:S отправляет все остальное в "черный список").

При помощи следующего выражения фильтра отображаются все сообщения с приоритетом "warning" или выше для всех тэгов:
adb logcat *:W

Если logcat запускается на машине разработчика (не через удаленный adb shell), можно также установить значение выражения фильтра по умолчанию задав переменную окружения ANDROID_LOG_TAGS:
export ANDROID_LOG_TAGS="ActivityManager:I MyApp *:S"

Следует обратить внимание что задав переменную окружения ANDROID_LOG_TAGS она не будет работать в эмуляторе/устройстве, если вы будете использовать logcat в удаленном shell или используя adb shell logcat.
Вышеописанная команда export работает в ОС *nix и не работает в Windows.

Контроль формата вывода лога

Сообщения лога в дополнение к тэгу и приоритету содержат несколько полей метаданных. Можно изменять формат вывода сообщений показывая только конкретные поля метаданных. Для этого используется параметр -v и указывается один из ниже перечисленных форматов вывода.

brief Показывать приоритет/тэг и PID процесса (формат по умолчанию).
process Показывать только PID.
tag Показывать только приоритет/тэг.
thread Показывать только процесс:поток и приоритет/тэг.
raw Показать необработанное сообщение, без полей метаданных.
time Показывать дату, время вызова, приоритет/тэг и PID процесса.
long Показывать все поля метаданных и отдельно сообщения с пустыми строками.

При запуске logcat можно указать формат вывода используя параметр -v:
adb logcat [-v <format>]
Пример, который показывает сообщения в формате thread:
adb logcat -v thread
Нужно отметить, что можно использовать только один формат с параметром -v.

Просмотр альтернативного буфера лога

Система логов Android держит несколько кольцевых буферов для лога сообщений и не все сообщения отправляются в основной буфер. Для отображения дополнительных сообщений лога нужно запустить logcat с параметром -b.

Таким образом можно посмотреть один из альтернативных буферов:
radio Просмотр буфера с сообщениями связанными с радио/телефоном.
events Просмотр буфера с сообщениями связанными с событиями.
main Просмотр основного буфера (по умолчанию).

Пример ниже показывает буфер с радио и телефонными сообщениями:
adb logcat -b radio
0
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
11.07.2015, 14:22  [ТС] #12
Цитата Сообщение от mobrsa Посмотреть сообщение
Да ни слушай ты никого, инструмент который ты делал очень полезен. Большинству просто даже не с чем сравнить. Большенство пользуется средствами встроенными в IDE. Те кто пользуется напрямую через консоль
Ты почитай что мне ответили... И это было 2 года назад! За 2 года никто кроме Вас не поднимал эту тему... Небыло даже робких попыток узнать чего-же я добился... У меня почти 10 лет делфи - писал утилиты. Поэтому самым тяжелым было написать перехват результатов консоли и адаптировать свой компонент вьювера цветных строк...
Сейчас Делфи открываю лишь "по праздникам" - только ради поддержки проектов, которые требуют "кнопочку переставить" и "шрифт увеличить"...

По сути нехватает ОЧЕНЬ многих инструментов для отладки! Я например на 1С написал анализатор логов адб для отображения списка установленных алармов в читабельном виде... Планировал сделать скриншот с зумом для тонкой настройки графики. Планировал сделать "пульт управления" устройством/эмулятором через сокеты - убить проект из памяти, перезапустить, перегрузить устройство, удалить программу.
Планировал сделать полноценный дебюг таблиц... Иногда ОЧЕНЬ не хватает при разработке на больших курсорах... Даже вывести нечем, не говоря о том чтобы сравнивать...

2 года... я уже думал что я один такой... Уже даже забыл на чем остановился... Сейчас заново вспоминать придется(а я сейчас не имею столько времени). Открываю иногда когда надо вывести МНОГО сообщений на экран... Или запустить вывод сообщений на втором мониторе... (ноут=процессор+большой монитор как рабочий+клава+мышь, малый монитор от ноута для документов, отладки и мультимедии)
Вот мой скриншот: http://tester64.url.ph/wLogCat.jpg
Пусть обзавидуются линуксоиды...
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
11.07.2015, 19:14 #13
Судя по скриншоту - там целый комбайн) я думал будет просто окошко с теговыми логами или erroraми.
0
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
11.07.2015, 19:56  [ТС] #14
Цитата Сообщение от Rube Посмотреть сообщение
там целый комбайн)
Это ЗАГОТОВКА для комбайна! только в двух закладках полезное - во второй настройки!
Если логи однотипные и не очень длинные... И нужно скорее следить за их правильным порядком и что выбивается из порядка... самое то! На странице может поместиться до тысячи мелких сообщений. Можно рисовать многоцветные строки аля HTML. Можно управлять программой через особые строки-команды переданные в Log.w - свернуться, очиститься, развернуться, закрыться...

Начальная цель была убрать лишнее и поместить побольше строк на соседнем маленьком мониторе...

А в идеале избавиться от LogCat и сделать свой протокол передачи строк через сокеты. На сокетах и сломался... Вернее работало, но с сильными сбоями. Про сокеты задумался потом что каждая 100-200 строка переданная в консоль и переведенная из анси в юникод похоже "обрывается" и дублируется. Да и адб время от времени сам теряет связь с программой и надо запускать батник переподключения к IP. А я хотел сделать обычный надежный клиент-сервер с автоматическим переподключением (как скайп). И вывести на панельки (вроде той черной на скриншоте) кроме графика поступления строк логера и ошибок, еще и графики процессора и памяти... И вывести в винду список процессов с потреблением процессора и памяти. И установленые алармы и программы с размерами и доступами... Быстрая смена даты-времени в устройстве/эмуляторе для отладки напоминалки. Внешнее управление через скрипты сигналом передаваемым с GPS для отладки навигаторов. Попробовать имитировать нажатия кнопок внутри программ на устройствах для тестов по хитрым скриптам. Короче полноценный комбайн для тонкого управления отладкой и тестированием своих программ...

Скриншоты устройства через adb вроде понял как получать, но не нашел метода прочитать png в Делфи с возможностью править (например увеличить уголок для изучения "правильно ли линии нарисовались")... А потом необходимость "наводить красоту" в wLogCat пропала - без поддержки сообщества можно обойтись менее удобными средствами для редких для меня операций...

За год вполне мог довести до коммерческого уровня... Или уважаемой утилиты и зарабатывать на дотациях или рекламе. Сейчас уже не так интересно... Вот как можно убить интересный проект...
0
mobrsa
1 / 1 / 0
Регистрация: 08.07.2015
Сообщений: 9
13.07.2015, 15:26 #15
Ну за 2 года многое изменилось. Стало больше разработчиков, этим разработчикам стало не хватать стандартных средств. По началу же как... изучаем Android, смотрим что да как, привыкаем. После J2ME от инструментов отладки в Andoid просто балдеешь, я до этого лет 5-6 писал под J2ME, там вообще сложно получить какой либо лог сразу с устройства, да ещё и на разных устройствах всё по разному. С переходом на Android в этом плане всё изменилось в лучшую сторону. Мне тоже стандартных средств LogCat вполне хватало сначала. Но чем дальше тем больше хочется )

Думою какой-то супер-пупер комбайн не нужен. Лучше сосредоточиться на чём то одном и не распыляться, за то сделать это максимум хорошо.

Опишу одну идею, что бы мне реально хотелось от инструмента LogCat:

Установка настроек фильтрации и отображения лога (назовём это профиль) при помощи отправки специального сообщения в сам лог. То есть мы в каком то месте программы (например в Application.onCreate()) пишем что-то типа этого: Log.v(LOG_TAG, "wLogCat_setup: json{'filter':{...}, 'colors':{...}, ...}");
В общем смысл в том, чтобы иметь возможность автоматом настраивать для каждого приложения.
Почему так удобнее:
- не нужно вечно менять фильтры и настройки для разных приложений или разных режимов работы приложения
- можно автоматом устанавливать pid процесса, а то он каждый раз меняется если переустанавливать приложение, и приходиться его каждый раз смотреть и вставлять в фильтр. IDE это делают автоматом конечно, но иногда нужно посмотреть лог приложения установив его не через IDE а обычным способом (через интернет например).
- В процессе работы программы можно менять настройки фильтра, например иногда бывает ситуация, когда нужно ловить лог не от своего приложения, а от компонентов системы Android... например WebView кидает в лог полезную инфу по работа javascript, но со своим LOG_TAG. Хорошо сделать так чтобы какой-то кусок программы отображался по своему в logCat.

Чтото ещё хотел.. но пока забыл, вспомню напишу.

В общем если будет желание и возможности то стоит продолжать работу в этом направлении, потому что инструментов явно не хватает кто бы что тебе не говорил, особенно 2 года назад, так что по этому поводу вообще не заморачивайся. Если будет желание написать с нуля на Java то я могу помочь. Могу и на С++ помочь (стаж был 6 лет) но уже не писал на нём года 3, так что уже сложнее. Можно как вариант попробовать написать плагин для IDEA, было бы супер вообще )
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2015, 15:26
Привет! Вот еще темы с ответами:

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

Android Studio и logcat - Программирование Android
Добрый день! После завершения программы в logcat продолжает сыпаться сообщения: I/SurfaceFlinger: surface flinger stars...

В LogCat не выводится сообщение - Программирование Android
Log.d(TAG, &quot;найдем View-элементы&quot;); Ввожу такой код в активити в onCreate все работает запускается а в логах никакого сообщения нет...

Ошибка в logcat AndroidStudio - Программирование Android
Здравствуйте! Написал простенькое приложенице в Студии, ошибок вроде нет. Но при запуске эмулятора приложение вылетает. Не могу понять...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.07.2015, 15:26
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru