Di mana file log yang dihasilkan oleh start-up verbose di OS X Lion?

19

Setelah memulai mesin saya dalam mode verbose (cmd + v saat start-up) saya ingin melihat pesan log yang dihasilkan, untuk men-debug kesalahan yang saya terima ( kesalahan ). Kesalahan hanya ditampilkan di layar sebentar selama startup, sebelum mesin reboot. Akibatnya, tidak ada waktu untuk membacanya dengan benar.

Apakah OS X menyediakan file log terpisah untuk pesan start-up, atau apakah ini terkubur dalam file kernel.log dan system.log? Jika mereka terkubur di dalam file-file ini, apakah ada cara cepat untuk melompat ke titik di mana sistem melakukan boot, di dalam penampil konsol?

purpletonic
sumber

Jawaban:

3

Mulai setidaknya Snow Leopard dan mungkin Leopard, semua logging pada sistem melewati mekanisme Apple System Log (ASL), yang seperti daemon pusat dan database untuk semua pesan log. Daemon ASL juga memastikan bahwa pesan log yang sesuai yang memenuhi kriteria tradisional tertentu dituliskan ke file log teks biasa seperti , system.logdan kernel.log, tetapi semuanya juga masuk ke basis data ASL.

Untuk informasi lebih lanjut, lihat halaman manual untuk syslog(1), logger(1), syslog(3), asl(3), syslog.conf(5), asl.conf(5), syslogd(8), dll

Anda bisa menggunakan syslog(1)untuk mengeluarkan pertanyaan terhadap database ASL. Juga, /Utilities/Console.appmenyediakan GUI untuk menghasilkan dan menyimpan kueri khusus untuk database ASL.

Saya cukup yakin bahwa buffer pesan kernel (secara tradisional dilihat bersama dmesg(8)) akan dibuang ke database ASL segera setelah boot berjalan cukup jauh untuk syslogddijalankan, jadi Anda tidak perlu menelepon dmesgsecara langsung, kecuali melalui kebiasaan. Atau jika sistem Anda tidak mem-boot cukup jauh syslogdagar dapat berjalan.

Spiff
sumber
Apakah ini berhasil untuk boot sebelumnya? Masalah yang saya alami ketika saya menulis pertanyaan ini (diselesaikan sekarang, untungnya) hanya terjadi sesekali. Jadi katakanlah, setiap boot lain, itu adalah kernel Kernel pada saya, dan apa yang ingin saya lakukan adalah pada boot yang berhasil berikutnya, tinjau file log, temukan boot sebelumnya, dan coba dan debug.
Purpletonic
@purpletonic Ya, semua yang dikirim ke ASL dimasukkan ke dalam basis data, di mana ia tetap untuk default 7 hari (ini dapat disesuaikan dengan asl.conf(5)). Jadi jika Anda debugging masalah booting dan reboot beberapa kali pada hari yang sama, mereka akan ada di sana secara default. Dan jika itu adalah masalah jangka panjang, Anda bisa menyesuaikan periode retensi ASL untuk menjaga barang lebih lama.
Spiff
Jawaban ini sebenarnya tidak mengatakan bagaimana saya bisa melihat output dari proses boot "verbose". Setelah boot, dmesgtidak hanya menampilkan beberapa entri terbaru tetapi tidak log boot. Mencoba ini di 10.12.6 - tidak ada lagi file "kernel.log".
SuperTempel
11

Buka Terminal.app dan jalankan

sudo dmesg

(Anda akan dimintai kata sandi)

Ini akan menampilkan pesan sistem dari startup terakhir hingga sekarang (Anda akan menemukan pesan-pesan startup di bagian atas output). Anda boleh mencoba

sudo dmesg | lebih

ini akan menampilkan pesan-pesan itu halaman demi halaman.

trurl
sumber
Bagus! Saya akan menggunakan lebih sedikit daripada lebih banyak, ini jauh lebih nyaman dan tidak mengacaukan scrollback terminal Anda.
SilverWolf - Reinstate Monica
4

Jawaban yang diterima (oleh Spiff) tidak membantu saya, juga tidak ada kernel.log lagi.

Apa yang berfungsi untuk saya (pada macOS 10.12.6) adalah perintah ini:

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

Ini menunjukkan semua pesan kernel hari ini, termasuk proses boot. Butuh pembersihan, tapi setidaknya itu berisi semua yang saya butuhkan untuk menemukan.

SuperTempel
sumber
Ini juga berfungsi untuk saya. Terima kasih. Jawaban lain menunjukkan hal-hal yang tidak selalu terkait dengan boot up, atau tidak menunjukkan PERSIS apa yang sedang dicetak saat boot. Jawaban Anda memberi +1. Dan itu kode warna juga!
Max Coplan
2

Saya sendiri bertanya-tanya bagaimana cara mendapatkan log yang paling tepat untuk startup tanpa akses ke konsol / terminal. Itu macet saat startup tetapi Anda bisa mendapatkan akses ke sistem file melalui disk instalasi (saya punya dual linux boot tersedia). File tersebut adalah:

/var/log/kernel.log

Jika Anda dapat mengakses konsol di dalam sistem operasi, lebih baik mengikuti saran lain dan menggunakan perintah yang sesuai.

Warpspace
sumber