Я пытаюсь записать события / контрольные точки из моего shell-скрипта, используя logger
.
Как использовать logger
или syslog
утилиту в OS X (версия 10.12 (16A323)) . я пытался
logger "Hello world"
и проверил /var/log/system.log
с помощью консольного приложения, была создана запись в журнале
Не удалось собрать строки для двоичного файла с именем '–Xó ^ H'
Как использовать logger
в OS X? Есть ли что-то, что должно быть указано для создания / добавления записи в системный журнал OS X?
Hello World
в одном/var/log/*.log
файле. Поведение, которое видит @SG_, воспроизводимо на моем Mac под управлением macOS 10.12. Кроме того,logger -s 'Hello World'
правильно печатает на консоль, но не на любой файл журнала на диске.Ответы:
Потому что система регистрации Apple изменилась в macOS sierra. Они переходят от средства Apple System Log к унифицированному ведению журнала.
Вот ссылка на документацию для разработчиков.
Следующие фильтры фильтруют новый унифицированный журнал для текста «Message4me»
=======
Если вы добавите --info, вы увидите и само сообщение о событии в выводе.
В предыдущих версиях ОС команда logger отправляла в файл /var/log/system.log, если приоритет был достаточно высок (например, с помощью -p alert), а также в базу данных системного журнала. В Sierra system.log не записывается, когда регистратор используется с -p alert -not в 10.12.1. Это может быть ошибкой.
Вы все еще можете использовать регистратор для отправки в новую систему ведения журналов, но для просмотра результатов придется использовать консольное приложение, утилиту cli log или новый API.
источник
Я решил эту проблему, имея скрипт, который использует netcat для отправки определенных журналов каждые 10 минут из launchdaemon. Редактировать по мере необходимости.
источник
Это не реальный ответ, а обходной путь и слишком длинный комментарий.
Я столкнулся с той же проблемой в Сьерре, когда он пытался зарегистрировать сценарий обновления для доморощенного журнала, включая команды регистратора (который работал в El Capitan). Мне пришлось отказаться от логгера и просто использовать echo, перенаправление вывода и новый лог-файл:
источник