Где файл журнала, сгенерированный многословным запуском в OS X Lion?

19

После запуска моей машины в подробном режиме (cmd + v при запуске) я хочу просмотреть сгенерированные сообщения журнала, чтобы отладить полученную ошибку ( ошибку ). Ошибка отображается на экране только кратковременно во время запуска, до перезагрузки машины. В результате нет времени читать его правильно.

Предоставляет ли OS X отдельный файл журнала для начальных сообщений или они скрыты в файлах kernel.log и system.log? Если они находятся внутри этих файлов, есть ли быстрый способ перейти к точке загрузки системы в средстве просмотра консоли?

purpletonic
источник

Ответы:

3

Начиная, по крайней мере, со Snow Leopard и, возможно, Leopard, все входы в систему проходят через механизм Apple System Log (ASL), который подобен центральному демону и базе данных для всех сообщений журнала. Демон ASL также следит за тем, чтобы соответствующие сообщения журнала, отвечающие определенным традиционным критериям, записывались в традиционные файлы журнала с простым текстом, такие как system.logи kernel.log, но все также отправляется в базу данных ASL.

Для получения более подробной информации, обратитесь к страницам для syslog(1), logger(1), syslog(3), asl(3), syslog.conf(5), asl.conf(5), syslogd(8)и т.д.

Вы можете использовать syslog(1)для выдачи запросов к базе данных ASL. Кроме того, /Utilities/Console.appпредоставляет графический интерфейс для создания и сохранения пользовательских запросов для базы данных ASL.

Я почти уверен, что буфер сообщений ядра (традиционно просматриваемый dmesg(8)) сбрасывается в базу данных ASL, как только загрузка прошла достаточно далеко для syslogdзапуска, поэтому вам не нужно вызывать dmesgнапрямую, кроме как по привычке. Или, если ваша система не загружается достаточно далеко для syslogdзапуска.

Spiff
источник
Это работает для предыдущих ботинок? Проблема, с которой я столкнулся, когда писал этот вопрос (к счастью, решен сейчас), возникала только периодически. Скажем так, при любой другой загрузке это была паника ядра, и я хотел при следующей успешной загрузке просмотреть файл журнала, найти предыдущую загрузку и попробовать и отладить.
purpletonic
@purpletonic Да, все, что отправляется в ASL, помещается в базу данных, где оно остается по умолчанию на 7 дней (это можно изменить с помощью asl.conf(5)). Так что, если бы вы отлаживали проблемы с загрузкой и перезагружали несколько раз в один и тот же день, они были бы там по умолчанию. И если это была долгосрочная проблема, вы могли бы отрегулировать срок хранения ASL, чтобы хранить вещи дольше.
Spiff
Этот ответ на самом деле не говорит о том, как я могу увидеть результаты «подробного» процесса загрузки. После загрузки dmesgпоказывает только некоторые последние записи, но не журнал загрузки. Попытка сделать это 10.12.6 - файла "kernel.log" больше нет.
SuperTempel
11

Откройте Terminal.app и запустите

судо дмесг

(вам будет предложено ввести пароль)

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

судо дмесг | Больше

это будет выводить эти сообщения постранично.

Trurl
источник
Ницца! Я бы использовал меньше, а не больше, это намного удобнее и не загромождает прокрутку вашего терминала.
Серебряный Волк - Восстановить Монику
4

Принятый ответ (от Спиффа) мне не помог, как и ядро ​​kernel.log.

Что работает для меня (на MacOS 10.12.6) это команда:

log show --predicate "processID == 0" --start $(date "+%Y-%m-%d") --debug

Он показывает все сегодняшние сообщения ядра, включая процесс загрузки. Это требует некоторой очистки, но, по крайней мере, оно содержит все, что мне нужно было найти.

SuperTempel
источник
Это работает и для меня. Спасибо. Другие ответы показывают вещи, не обязательно связанные с загрузкой, или не показывают ТОЧНО, что печатается во время загрузки. Ваш ответ +1. И это тоже цветовая кодировка!
Макс Коплан
2

Я сам задаюсь вопросом, как получить журнал, наиболее подходящий для запуска, без доступа к консоли / терминалу. Он завис при запуске, но вы можете получить доступ к файловой системе через установочный диск (у меня была доступна двойная загрузка Linux). Файл:

/var/log/kernel.log

Если вы можете получить доступ к консоли в операционной системе, лучше следовать другим советам и использовать соответствующие команды.

Warpspace
источник