как получить стандартный вывод в Console.app

Ранее я мог читать все данные stdout / stderr из приложений в Console.app. Некоторое время это уже не так (хотя данные NSLog все еще там). Я'м на 10,8 сейчас.

Это былранее похожий вопрос от 2010 который небольше не кажется современным.

На СУ тоже естьаналогичный вопрос который не былТ еще не ответил.

Было ли это изменено, то есть stdout больше не должен регистрироваться? Или что-то сломалось в моей системе (из старого вопроса SU это звучало так, как будто это может иметь место - хотя и не помогло)?

Могу ли я как-то изменить это обратно?

Ответы на вопрос(2)

Решение Вопроса

launchdвключая обычные приложения, их файловые дескрипторы stdout и stderr были перенаправлены в системный журнал. В Mountain Lion и выше stdout и stderr никуда не денутсяlaunchd управляемые приложения. Там будут только сообщения, явно отправленные в системный журнал.

Если ты'переписываете приложение и хотели бы, чтобы какой-то вывод отображался в консоли, а затем принял API, построенный наsyslog(3) или жеasl(3) вместо.NSLog это один из таких API, и он имеет преимущество в том, что регистрирует в stderr, так что вы можете легко увидеть свои результаты независимо от того, как выМы запустили ваше приложение. Если ты'мне нравится эта функциональность, но я хочу использоватьasl или жеsyslog прямо тогда тызахочу заглянуть вASL_OPT_STDERR возможностьasl_openиLOG_PERROR возможностьopenlog соответственно.

 Albert27 мар. 2013 г., 16:06
Есть ли у вас какие-либо сведения о том, что это поведение изменилось вlaunchd а почему это изменилось?
 bdash27 мар. 2013 г., 17:52
Я неу вас нет реальной ссылки, но вы можете подтвердить изменения, посмотрев нарелизы исходного кода, Вы можете увидеть, что ссылки наlog_redirect_fd а такжеjob_log_stdouterr которые присутствовали в OS X 10.7.5 's launchd-392.39 больше не присутствует в launchd-442.21. Это была логика, которая была ответственна за чтение приложения "s stderr и stdout дескрипторы и переадресация их вывода в системный журнал.

д или стандартный вывод, откройте приложение из терминала. Вы можете перейти к исполняемому файлу и открыть его из командной строки, как в обычном старом мире: введите имя программы. Тогда сообщения появятся на терминале.

Это не отказ от каких-либо других, лучших предложений. Это просто способ получить результат без изменения (старой) программы.

Ваш ответ на вопрос