Отладочные сообщения в коде

Ответить
jBee
Сообщения: 41
Зарегистрирован: 03 апр 2013, 16:24

Отладочные сообщения в коде

Сообщение jBee » 30 май 2013, 22:33

При отладке в код вставляю много разных сообщений Log.d ( ...). Как их выключить в рабочей версии (без ручного удаления из кода) ?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Отладочные сообщения в коде

Сообщение Foenix » 30 май 2013, 22:46

вот интересно, ты задумывался, куда они "в рабочей версии" выводятся? :)
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

jBee
Сообщения: 41
Зарегистрирован: 03 апр 2013, 16:24

Re: Отладочные сообщения в коде

Сообщение jBee » 30 май 2013, 22:55

В рабочей версии не знаю куда они выводятся, думаю в какое нибудь "устройство" вывода попадают.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Отладочные сообщения в коде

Сообщение Foenix » 30 май 2013, 22:59

оставь ты их, никуда они не "выводятся", это фича для отладки only
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

xr0m
Сообщения: 131
Зарегистрирован: 06 апр 2013, 14:01

Re: Отладочные сообщения в коде

Сообщение xr0m » 30 май 2013, 23:05

Аналогично записываются в лог фаил. При падении аппликации, можно попросить у пользователя лог фаил, и понять где у него проблема, но избыток лог записей тебе самому же будут мешать.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Отладочные сообщения в коде

Сообщение Foenix » 30 май 2013, 23:16

xr0m писал(а):Аналогично записываются в лог фаил. При падении аппликации, можно попросить у пользователя лог фаил, и понять где у него проблема, но избыток лог записей тебе самому же будут мешать.
можно если очень хочется использовать isLoggable
только потом все равно в каждой строчке вывода в лог нужно проверять условие

Мне просто не нравятся лишние строчки в коде - я их просто беру и вручную удаляю, благо - это элементарно
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

jBee
Сообщения: 41
Зарегистрирован: 03 апр 2013, 16:24

Re: Отладочные сообщения в коде

Сообщение jBee » 04 июн 2013, 13:28

На мой взгляд было бы правильнее выставлять некий флаг, позволяющий глобально включать/выключать логирование без дополнительного кодирования. Но есть ли такое в java это вопрос.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Отладочные сообщения в коде

Сообщение Foenix » 04 июн 2013, 13:39

а еще лучше научить программу читать мысли)
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Отладочные сообщения в коде

Сообщение Mikhail_dev » 04 июн 2013, 14:17

Можешь почитать про типы логгеров в самой Java
http://habrahabr.ru/post/113145/

Суть в том, что я точно знаю что там есть такой логгер, о котором ты говоришь, когда по одному флагу отключалось логгирование. Более того, там есть момент, когда происходит конкатенация строк, вот из-за таких вот логгеров (сам вывод в логгер строк). Т.е. получается, что логинг мы этот не используем, а ресурсы затрачиваем. Я как-то банальным закомментированием 4-х строк "Log.d(" увеличил производительность в 4 раза.
В статье это логгер вроде как SLF4J. Почитай про них, во-первых это интересно и полезно, во-вторых на основе них думаю можно найти библиотеку (пример-log4j есть на андроид) и для самого андроида, ибо тема актуальная. На счет почему тема актуальная, вот небольшая заметка. Немного не в тему, но всё же в тему, только с другой немного стороны.
Как мирный reverse engineering помог чуть-чуть улучшить приложение Яндекс.Деньги

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: Отладочные сообщения в коде

Сообщение Finch » 04 июн 2013, 19:15

Лично я использую очень простую конструкцию в коде. Подсмотрел это фичу у гугловцев.
[syntax=java]if(BuildConfig.DEBUG)
Log.d("YOUR_TAG", "YOUR_MESSAGE");[/syntax]

Смысл в том что при релизной сборке апк лог выводится не будет.
CEO of a company R.id.team

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Отладочные сообщения в коде

Сообщение Mikhail_dev » 04 июн 2013, 19:33

Это понятно, но смотри, что было бы лучше?
[syntax=java]
if (log.isDebugEnabled()) {
log.debug("User " + user + " connected from " + request.getRemoteAddr());
}
[/syntax]
или
[syntax=java]
log.debug("User {} connected from {}", user, request.getRemoteAddr());
[/syntax]
?
Т.е. на уровне самой библиотеки решается что это, релиз или дебаг. Я не знаю, есть ли такое в Андроиде, но в обычной Java есть.
А в Андроиде я нашел такую тему
http://stackoverflow.com/questions/1051 ... ork-to-use
где судя по всему, таковое есть, и имя ему, SLF4J Android

Ответить