Могу ли я оставить вход в Release builds? - PullRequest
3 голосов
/ 31 августа 2010

Я прочитал этот вопрос , который выступает за исключение утверждений NSLog из сборок Release.

Допустимо ли, вместо того, чтобы загромождать основной журнал ненужными, писать его в AppleСистемный журнал вместо этого, тогда он будет скрыт от основного журнала?

Или я просто слишком усложняю вещи?Были ли случаи, когда ведение журнала было полезно для выявления ошибки в приложении после выпуска?

Ответы [ 2 ]

2 голосов
/ 31 августа 2010

Я обнаружил, что сообщения журнала, которые я добавляю во время разработки, обычно делают одну из трех вещей:

  1. Помощь в отладке и тестировании новых, незавершенных функций и путей кода
  2. Предоставьте информацию о нормальной работе программы, такой как завершение задачи и распространенные ошибки (например, отсутствие подключения к Интернету).
  3. Предоставьте подробную информацию о необычных или неожиданных событиях, включая опасные или не специально обработанные ошибки, обновления программного обеспечения и искаженные данные, поступающие из соединения с сервером или из файла

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

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

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

2 голосов
/ 31 августа 2010

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

...