Подтвердить что ты не робот

Чтение вывода syslog на Mac

У меня есть программа, написанная для linux, и я пытаюсь ее создать и запустить на моем компьютере MacOS 10.5. Программа работает и работает без проблем, однако она вызывает много вызовов в syslog. Я знаю, что syslogd работает на моем mac, но я не могу найти, где выводятся мои вызовы syslog.

Вызовы syslog имеют форму

syslog (LOG_WARNING, "Log message");

Любая идея, где я могу найти выход журнала?

4b9b3361

Ответ 1

/var/log/system.log

Вы можете легко контролировать его, используя tail -f /var/log/system.log

См. также "регистратор" (man logger) и "syslog" (man syslog).

Ответ 2

Вы также можете использовать программу Console.app для просмотра лог файлов. Это пурпурно.

Ответ 3

Если есть сомнения, всегда man syslog.

Вы можете найти свои сообщения в /var/log/syslog; моя машина настроена из коробки, чтобы включать только сообщения высокого уровня, поэтому вам могут потребоваться ваши настройки.

Вы также можете прочитать сообщения через syslog (1) или создать тестовое сообщение с помощью команды типа

$ syslog -s -l INFO "Hello, world."

используйте серьезность P ( "panic" ), и вы сразу получите захватывающее сообщение на консоли.

Ответ 4

Mac OS X реализует надмножество функциональности syslog. Все syslog есть, но как часть ASL.

Консоль, упомянутая в ответе Мэтью Шинкеля, является графическим интерфейсом ASL. Он покажет вам любые сообщения, которые существуют в базе данных, как выбранные запросами, перечисленными на боковой панели. По умолчанию два запроса; отображаются только сообщения, отправленные с помощью средства консоли (как, например, NSLog), тогда как в другом отображаются все сообщения журнала. Проверьте запрос на все сообщения; вы, вероятно, найдете там свое сообщение.

В этом "все" есть звездочка. Если вы посмотрите в /etc/asl.conf, вы увидите эту строку:

# save everything from emergency to notice
? [<= Level notice] store

К счастью, в вашем случае сообщение будет проходить эту проверку, так как предупреждение outranks (это меньшее число, чем) уведомление.

Ответ 5

На основе ответа Charlie я хотел бы добавить, что вы должны взглянуть на man-страницу syslog.conf(5), а также заглянуть в файл /etc/syslog.conf (где конфигурация syslog определена по умолчанию, а также, как я вижу, на OS X 10.5.x).

Ответ 6

Возможно, интересно отметить: Apple использовала реальный syslogd в прошлом, но между тем все это переключилось на ASL (системный журнал Apple). Команда syslog по-прежнему доступна, но она будет доступна только для этого журнала. Если вы хотите получить доступ ко всем сообщениям журнала ASL по всем настроенным файлам журнала, используйте команду log.

например. ниже показаны все сообщения журнала, созданные Safari в течение последних двух дней (быть терпеливыми, может занять некоторое время):

log show --predicate 'process == "Safari"' --last 2d

См. man log для всех действий, которые вы можете выполнить, всех параметров, которые он знает, и от каких атрибутов вы можете фильтровать.

Ответ 7

Проверьте вызов openlog где-нибудь в программе. После вызова openlog, syslog сохранит свой вывод в этом файле журнала вместо местоположения по умолчанию.