Ответ 1
/var/log/system.log
Вы можете легко контролировать его, используя tail -f /var/log/system.log
См. также "регистратор" (man logger
) и "syslog" (man syslog
).
У меня есть программа, написанная для linux, и я пытаюсь ее создать и запустить на моем компьютере MacOS 10.5. Программа работает и работает без проблем, однако она вызывает много вызовов в syslog. Я знаю, что syslogd работает на моем mac, но я не могу найти, где выводятся мои вызовы syslog.
Вызовы syslog имеют форму
syslog (LOG_WARNING, "Log message");
Любая идея, где я могу найти выход журнала?
/var/log/system.log
Вы можете легко контролировать его, используя tail -f /var/log/system.log
См. также "регистратор" (man logger
) и "syslog" (man syslog
).
Вы также можете использовать программу Console.app для просмотра лог файлов. Это пурпурно.
Если есть сомнения, всегда man syslog
.
Вы можете найти свои сообщения в /var/log/syslog
; моя машина настроена из коробки, чтобы включать только сообщения высокого уровня, поэтому вам могут потребоваться ваши настройки.
Вы также можете прочитать сообщения через syslog (1) или создать тестовое сообщение с помощью команды типа
$ syslog -s -l INFO "Hello, world."
используйте серьезность P ( "panic" ), и вы сразу получите захватывающее сообщение на консоли.
Mac OS X реализует надмножество функциональности syslog. Все syslog есть, но как часть ASL.
Консоль, упомянутая в ответе Мэтью Шинкеля, является графическим интерфейсом ASL. Он покажет вам любые сообщения, которые существуют в базе данных, как выбранные запросами, перечисленными на боковой панели. По умолчанию два запроса; отображаются только сообщения, отправленные с помощью средства консоли (как, например, NSLog
), тогда как в другом отображаются все сообщения журнала. Проверьте запрос на все сообщения; вы, вероятно, найдете там свое сообщение.
В этом "все" есть звездочка. Если вы посмотрите в /etc/asl.conf, вы увидите эту строку:
# save everything from emergency to notice
? [<= Level notice] store
К счастью, в вашем случае сообщение будет проходить эту проверку, так как предупреждение outranks (это меньшее число, чем) уведомление.
На основе ответа Charlie я хотел бы добавить, что вы должны взглянуть на man-страницу syslog.conf(5)
, а также заглянуть в файл /etc/syslog.conf
(где конфигурация syslog определена по умолчанию, а также, как я вижу, на OS X 10.5.x).
Возможно, интересно отметить: Apple использовала реальный syslogd
в прошлом, но между тем все это переключилось на ASL (системный журнал Apple). Команда syslog
по-прежнему доступна, но она будет доступна только для этого журнала. Если вы хотите получить доступ ко всем сообщениям журнала ASL по всем настроенным файлам журнала, используйте команду log
.
например. ниже показаны все сообщения журнала, созданные Safari в течение последних двух дней (быть терпеливыми, может занять некоторое время):
log show --predicate 'process == "Safari"' --last 2d
См. man log
для всех действий, которые вы можете выполнить, всех параметров, которые он знает, и от каких атрибутов вы можете фильтровать.
Проверьте вызов openlog
где-нибудь в программе. После вызова openlog
, syslog
сохранит свой вывод в этом файле журнала вместо местоположения по умолчанию.