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.