3

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

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .