Я только что добавил поддержку журналирования 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