はじめに
まだまだIT運用、コンピューターの動きの解像度が低いのかなと思う今日この頃。。
macOSで実際に動いているログを見ながら、OSの内部動作を理解します。ログはシステムの「目」であり、何が起きているかを知る最も重要な情報源です。
対象読者
- 若手エンジニア(2年目前後)
- 「ログって何を見ればいいの?」と思っている方
- macOSの内部動作に興味がある方
この記事でできること
- 10分程度でmacOSのログシステムを理解
- 実際のログを見てOSの動きを追跡
- トラブルシューティングの基礎をかじる
macOSのログシステム
macOSには2つのログシステムがあります:
-
統合ログ(Unified Logging) -
logコマンド- macOS 10.12以降の新しいシステム
- 高速で構造化されたログ
- リアルタイム監視が得意
-
従来のログファイル -
/var/log/- テキストファイルで読みやすい
-
install.log、system.logなど
Step 1:ログの場所を確認する(3分)
① ログディレクトリを見る
ls -lh /var/log/
出力例:
drwxr-xr-x 2 root wheel 64B apache2
-rw-r--r-- 1 root wheel 2.9M install.log
-rw-r--r-- 1 root admin 132K jamf.log
# ここを例にとって見てみる
drwxr-x--- 11 root admin 352B DiagnosticMessages
# d:ディレクトリ、rwx r-x ---:アクセス権限、wheel:sudo可能なユーザー
# 管理者だけが完全に操作できて、管理グループだけが中を覗けるディレクトリ
重要なログファイル:
-
install.log- ソフトウェアのインストール履歴 -
system.log- システム全体のログ(古いmacOS) -
DiagnosticMessages/- クラッシュレポート
② インストールログを見る
tail -20 /var/log/install.log
出力例:
# スリープ関連
2026-04-28 00:35:05 softwareupdated: System will sleep
2026-04-28 00:37:12 softwareupdated: System has powered on
2026-04-28 00:37:17 softwareupdated: System will sleep
# 更新なしと表示
SUOSULoginCredentialPolicyManager: No update downloaded and prepared.
これで「最近何がインストールされたか」がわかります。
今回は、インストールではなくmacOSが定期的に行う自動更新チェックが行われていました。
Step 2:統合ログを使う
macOSには、Unified Loggingという固有のログシステムがあります。Linux でいう/var/log/syslogやjournalctlに近い存在で、macOS ではlogコマンド を使って参照します。
① 最近のログを表示
log show --last 5m
出力の見方:
Timestamp Thread Type Activity PID TTL
2026-04-28 08:22:09.791743+0900 0x1177979 Info 0x0 380 0
- Timestamp - いつ発生したか
- Type - Info/Default/Error/Fault
- PID - どのプロセスか(プロセスID)
出力例:
# bluetoothのログ
bluetoothd: BLE Scanner Device Found ...
# Wi-Fiドライバのログ(kernel)
IO80211ControllerMonitor::setAMPDUstat unhandled ...
DTIM missed count ...
② エラーだけを抽出
log show --predicate 'eventMessage contains "error"' --info --last 5m
出力例:
failed at lookup with error 159 - Sandbox restriction
サンドボックス制限のため、サービスに接続できなかった。大変なエラーではない。
③ 特定のアプリのログを見る
log show --predicate 'processImagePath contains "Chrome"' --info --last 1h
何がわかるか:
- Chromeが何をしているか
- どのタイミングで動作しているか
- エラーが出ていないか
出力例:
(CoreAudio) HALC_ProxyIOContext::ResumeIO
Google Chrome Helper: (CoreAudio)
9 0 Google Chrome: (CoreFoundation) [com.apple.CFPasteboard:entry] CopyData('AppleKeyboardLayoutOverridePasteboard' (<CFUUID 0x12402999120> 35BD862E-A2E2-4DC9-B33A-04924D89A5EF) gen: -1 item: 1264739405 flavor: 'AppleKeyboardLayoutOverrideFlavor')
2026-04-28 08:43:09.505614+0900 0x27893e Info 0x0 97909 0 Google Chrome: (CoreFoundation) [com.apple.CFPasteboard:cache] Rebuilding cache for 'AppleKeyboardLayoutOverridePasteboard' (<CFUUID 0x12402999120> 35BD862E-A2E2-4DC9-B33A-04924D89A5EF)
2026-04-28 08:43:09.506014+0900 0x27893e Info 0x0 97909 0 Google Chrome: (CoreFoundation) [com.apple.CFPasteboard:general] Will request data from daemon
2026-04-28 08:43:09.506472+0900 0x27893e Info 0x0 97909 0 Google Chrome: (CoreFoundation) [com.apple.CFPasteboard:exit] (not-in-cache) - result: 0 generation: 130670 data (252 bytes) flags: 0
2026-04-28 08:43:09.520940+0900 0x27893e Info 0x0
Audio, Helperなどが出ていた。Chromeの機能として
cashe general entry exitがくり返し出ていた。キャッシュが何回も作られている。
Step 3:リアルタイム監視
① ログをリアルタイムで見る
log stream
Ctrl+C で停止
これで「今この瞬間」のシステムの動きが見えます。
② 特定の条件でフィルタ
log stream --predicate 'eventType == logEvent AND messageType == error'
エラーだけをリアルタイムで監視できます。
Step 4:その他演習
システム起動時のログを見る
log show --predicate 'process == "kernel"' --last 1d | head -50
何がわかるか:
- カーネルの起動順序
- ハードウェアの認識
- ドライバの読み込み
出力例:
# AppleSMC / RTBuddy
(AppleSMC) system-state-notify
(RTBuddy) SMC HID Event
(AppleM68Buttons) dispatchEventExt keyboard
- SMC(電源・温度管理チップ)が状態変化を検知
- HIDイベント(キー・蓋など)が発生
# IOPlatformWwakeAction
IOPlatformWakeAction -> ApplePMP
IOPlatformWakeAction -> AppleT8103PMGR
IOPlatformWakeAction -> AppleSmartIO
IOPlatformWakeAction -> AppleT8101GPIOIC
...
スリープ中に留めていた各ハードウェアを順番に再起動している。
ログから障害の原因を探す(クラッシュレポートを確認)
ls -lt ~/Library/Logs/DiagnosticReports/ | head -10
出力例:
hinano@Hinanos-MacBook-Air ~ %
hinano@Hinanos-MacBook-Air ~ % ls -lt ~/Library/Logs/DiagnosticReports/ | head -10
total 0
drwxrwx--- 2 hinano _analyticsusers 64 4 2 09:14 Retired
crashがないので安全。
おわりに
ログを見ることで、macOSの内部で何が起きているか見ていきました。どんどん色々なログを触ってざーっと見ていくだけでもOSの動きがわかるようになりそうだな♪と思いました。
実践内容:
-
log showでログを表示 -
log streamでリアルタイム監視 -
--predicateで条件フィルタ - エラーの見つけ方