web-dev-qa-db-fra.com

Où se trouve le fichier journal généré par une mise en route détaillée sous OS X Lion?

Après avoir démarré ma machine en mode commenté (cmd + v au démarrage), je souhaite afficher les messages de journalisation générés, afin de déboguer une erreur que je reçois ( l'erreur ). L'erreur ne s'affiche brièvement à l'écran qu'au démarrage, avant le redémarrage de la machine. En conséquence, il n’ya pas de temps pour le lire correctement.

OS X fournit-il un fichier journal séparé pour les messages de démarrage, ou sont-ils enfouis dans les fichiers kernel.log et system.log? S'ils sont enterrés dans ces fichiers, existe-t-il un moyen rapide de se rendre au point de démarrage du système, dans le visualiseur de console?

19
purpletonic

À partir d'au moins Snow Leopard et éventuellement de Leopard, toute la journalisation sur le système passe par le mécanisme Apple System Log (ASL), qui est un démon central et une base de données pour tous les messages du journal. Le démon ASL s'assure également que les messages de journal appropriés qui répondent à certains critères traditionnels sont écrits dans des fichiers journaux de texte à plat classiques tels que system.log et kernel.log, mais tout est également transmis à la base de données ASL.

Pour plus d'informations, reportez-vous aux pages de manuel relatives à syslog(1), logger(1), syslog(3), asl(3), syslog.conf(5), asl.conf(5), syslogd(8), etc.

Vous pouvez utiliser syslog(1) pour émettre des requêtes sur la base de données ASL. De plus, /Utilities/Console.app fournit une interface graphique permettant de générer et d'enregistrer des requêtes personnalisées pour la base de données ASL.

Je suis à peu près sûr que le tampon de messages du noyau (généralement visualisé avec dmesg(8)) est vidé dans la base de données ASL dès que le démarrage est suffisamment avancé pour que syslogd soit exécuté, vous n'avez donc pas besoin d'appeler dmesg directement, sauf par la force d'habitude. Ou si votre système ne démarre pas assez loin pour que syslogd soit en cours d'exécution.

2
Spiff

Ouvrez Terminal.app et lancez

Sudo dmesg

(votre mot de passe vous sera demandé)

Cela affichera les messages du système depuis le dernier démarrage jusqu'à maintenant (vous trouverez les messages de démarrage en haut de la sortie). Vous pouvez essayer

Sudo dmesg | plus

cela affichera ces messages page par page.

11
trurl

Je me suis moi-même demandé comment obtenir le journal le plus approprié au démarrage sans accès à la console/au terminal. Il s'est écrasé au démarrage, mais vous pouvez accéder au système de fichiers via le disque d'installation (un double démarrage Linux était disponible) Le fichier est:

/var/log/kernel.log

Si vous pouvez accéder à la console dans le système d'exploitation, il est préférable de suivre les autres suggestions et d'utiliser les commandes appropriées.

2
Warpspace

La réponse acceptée (par Spiff) ne m'a pas été utile, pas plus qu'il n'y a de kernel.log.

Ce qui fonctionne pour moi (sur macOS 10.12.6) est cette commande:

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

Il affiche tous les msgs du noyau actuels, y compris le processus de démarrage. Il doit être nettoyé, mais au moins, il contient tout ce dont j'avais besoin.

2
SuperTempel