Как вы можете подавить все входящие в приложение какао? - PullRequest
2 голосов
/ 03 октября 2009

Есть ли способ принудительного подавления всех записей в приложении Mac OS X для настольного компьютера Cocoa?

Иногда некоторая часть системы или плагин (который находится вне вашего контроля) будет регистрировать сообщения от имени вашего приложения на консоли (system.log).

Есть ли способ подавить все журналы в вашем приложении?

Ответы [ 3 ]

4 голосов
/ 03 октября 2009

@ gabe: просто собирался предложить что-то подобное - только что попробовал, и простой 'fclose (stderr)', кажется, предотвращает любой вывод.

4 голосов
/ 03 октября 2009

Вы можете использовать freopen, чтобы изменить, где stdout и sterr указывают на:

http://www.opengroup.org/onlinepubs/000095399/functions/freopen.html

0 голосов
/ 12 октября 2009

Я также делал это всякий раз, когда мне нужно было перенаправить вывод консоли в пользовательское представление:

stderr->_write = RedirectOutputToView;
stdout->_write = RedirectOutputToView;

Где RedirectOutputToView имеет следующий прототип:

int RedirectOutputToView(void *inFD, const char *buffer, int size);
...