Mac ASL: невозможно увидеть сообщения журнала моего приложения

Я только что добавил поддержку журналирования ASL в свое приложение (скомпилированный двоичный файл), но я не вижу никаких записей в журнале, используя Console.app. Я вошел в систему с помощью объекта com.mydomain.myapp (это не фактическое значение) и добавил запись в /private/etc/asl.conf сказать syslogd "хранить" записи на этом объекте (с любым уровнем):

? [= Facility com.mydomain.myapp] store

Я не справился с syslogd, поэтому перезапустил свой MacBook Pro, что также не имело значения.

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

РЕДАКТИРОВАТЬ: я видел эту статью, которая дает альтернативный способ установки значения 'cutoff', используемого syslogd, но не работает (пробовал временные и постоянные исправления):

... причина, по которой вы не видите сообщений Info или Debug, заключается в том, что демон syslogd фильтрует их. Если вы хотите изменить фильтрацию в syslogd, вы можете изменить параметры запуска в /System/Library/ LaunchDaemons/com.apple.syslogd.plist (добавьте -c и
-7 в массиве ProgramArguments). Это делает изменение "постоянным" (пока вы снова не измените список). Смотрите справочную страницу syslogd (8).

Кроме того, вы можете временно изменить значение фильтра базы данных syslogd с помощью утилиты командной строки "syslog". sudo syslog -c syslogd -d

1 ответ

Вы не говорите, является ли это приложение сценарием оболочки или скомпилированным двоичным файлом. Если это сценарий оболочки, я всегда использовал команду logger для обновления журналов в syslog. Если вы используете XCode и создаете скомпилированный проект Cocoa, вы можете получить лучшую помощь в публикации в StackOverFlow.

Другие вопросы по тегам