Console.app: apa itu, fungsi dan cara membaca log di macOS

Penulis: IT Sectr Diterbitkan: 2026-05-29 Waktu membaca: 8 mnt

Console.app adalah aplikasi bawaan macOS untuk melihat, memfilter, dan menganalisis log sistem dan pengguna. Ini menampilkan pesan dari unified logging system Apple (os_log) secara real-time, memungkinkan pengembang melihat crash, error, dan pesan debug tanpa terhubung ke Xcode. Menurut Apple Support, Console.app mendukung pemfilteran berdasarkan subsystem, category, tingkat keparahan, dan proses, serta ekspor log ke .logarchive untuk dikirim ke pengembang. Ini adalah alat yang sangat diperlukan untuk mendiagnosis masalah di Mac: filter dan pencarian tersimpan memungkinkan Anda menemukan error di aplikasi dengan cepat di antara ribuan pesan sistem.

Poin Penting

  • Console.app — penampil log bawaan macOS yang bekerja dengan unified logging system Apple
  • Pemfilteran — pencarian berdasarkan subsystem, category, level (Error, Fault, Debug) dan teks pesan dengan dukungan ekspresi reguler
  • Mode — Live (aliran real-time) dan Historical (log arsip), peralihan melalui toolbar
  • Ekspor — menyimpan log dalam .logarchive, .txt dan .json untuk dikirim ke pengembang atau dilampirkan ke laporan bug
  • Pencarian tersimpan — filter bernama untuk skenario tipikal: semua error aplikasi, log jaringan, CrashReporter

Apa itu Console.app

Console.app adalah antarmuka grafis untuk unified logging system Apple. Ini menggantikan aplikasi Console lama (sebagai bagian dari macOS) dan menyediakan akses ke semua log sistem dan aplikasi yang ditulis melalui API os_log, os_trace, dan syslog. Console.app tersedia di /Applications/Utilities/ di Mac mana pun.

Tidak seperti Xcode, yang hanya menampilkan log untuk aplikasi yang dijalankan dari IDE, Console.app menampilkan log semua proses di sistem secara bersamaan. Ini memungkinkan diagnosis masalah yang hanya muncul saat menjalankan aplikasi di luar Xcode atau di latar belakang. Console.app juga menampilkan log sistem — kernel, launchd, WindowServer, yang berguna untuk debugging masalah tingkat rendah.

Console.app tidak memerlukan instalasi alat tambahan atau koneksi internet. Semua data disimpan secara lokal di database .tracev3, dan aplikasi berfungsi sepenuhnya offline. Untuk melihat log dari Mac atau perangkat iOS lain, gunakan perintah log collect yang diikuti dengan membuka .logarchive di Console.app.

Antarmuka Console.app

Antarmuka Console.app terdiri dari tiga area utama: panel samping dengan filter, tabel pesan, dan panel detail pesan yang dipilih. Panel samping berisi bagian Devices (sumber log yang tersedia), Reports (laporan sistem tentang kegagalan), dan Saved Searches (kueri pencarian tersimpan).

Tabel pesan menampilkan daftar log dengan kolom: Time (stempel waktu), Category (kategori), Level (tingkat keparahan — indikasi warna), Process (nama proses), Message (teks pesan). Klik pada pesan mana pun membuka panel detail, yang menampilkan subsystem, activity identifier, thread ID, dan teks lengkap dengan format.

Console.app menyorot pesan dengan warna: merah untuk Fault, kuning untuk Error, biru untuk Debug, abu-abu untuk Info. Pesan Default tidak disorot. Ini memungkinkan pemindaian visual aliran log dan pengamatan langsung kejadian kritis.

swift
// Log yang akan muncul di Console.app
import OSLog

let logger = Logger(
    subsystem: "com.example.myapp",
    category: "network"
)

logger.error("Connection failed: timeout")
logger.debug("Retry attempt 3 of 5")

// Pesan ini terlihat di Console.app dengan filter “myapp”

Filter dan pencarian di Console.app

Pemfilteran — fungsi utama Console.app, yang mengubah aliran ribuan pesan per detik menjadi daftar yang dapat dibaca. Bidang pencarian di bagian atas mendukung kondisi AND: beberapa kata dipisah spasi menampilkan hanya pesan yang mengandung semua kata. Misalnya, myapp error akan menampilkan semua log aplikasi myapp dengan level Error.

Filter Subsystem di panel samping memungkinkan Anda memilih satu atau lebih subsystem. Ini adalah cara tercepat untuk mengisolasi log aplikasi tertentu dari pesan sistem. Filter Category tersedia setelah memilih subsystem — ini menampilkan semua kategori yang digunakan oleh aplikasi yang dipilih. Filter Level membatasi pesan berdasarkan tingkat keparahan: hanya error atau hanya pesan debug yang dapat ditampilkan.

Jenis FilterContohHasil
Tekscrash paymentPesan yang mengandung crash DAN payment
Subsystemcom.example.myappHanya log aplikasi yang ditentukan
LevelError + FaultHanya error dan kegagalan kritis
CategorynetworkPesan dengan kategori network
Waktu1 jam terakhirPesan hanya dari interval yang dipilih

Ekspresi reguler dalam pencarian

Bidang pencarian Console.app mendukung regex melalui konstruksi REGEX:pattern. Contoh: REGEX:error.*tim(e|out) akan menemukan semua pesan yang mengandung “error” dan kata yang dimulai dengan “tim” dan diakhiri dengan “e” atau “out”. Regex hanya berfungsi di bidang pencarian, bukan di filter subsystem atau category.

Mode Live dan Historical

Live — mode waktu nyata, di mana Console.app menampilkan pesan baru saat muncul di buffer sirkular kernel. Mode ini aktif secara default dan cocok untuk debugging aplikasi yang sedang berjalan: Anda menjalankan aplikasi dan melihat log-nya dengan penundaan 1–5 detik. Tombol Live (atau ⌘L) mengaktifkan dan menonaktifkan aliran.

Historical — mode melihat arsip. Console.app menyimpan semua pesan selama 7–14 hari terakhir (dapat dikonfigurasi di sistem) di database .tracev3. Mode Historical membuka arsip ini dan memungkinkan pencarian dengan filter apa pun, tidak hanya aliran saat ini. Ini sangat diperlukan untuk menganalisis masalah yang terjadi di malam hari atau saat aplikasi berjalan tanpa koneksi ke Mac.

Peralihan antara mode dilakukan melalui tombol Live di toolbar. Saat Live dimatikan, Console.app menampilkan data historis. Dalam mode ini, Anda dapat menavigasi garis waktu menggunakan kalender atau tombol ← →. Data Historical hanya tersedia untuk log yang disimpan ke disk — pesan yang ditimpa di buffer sirkular tidak masuk ke arsip.

Ekspor dan berbagi log

Console.app mendukung ekspor log yang difilter dalam beberapa format. File → Export → Save memilih format: .logarchive (format asli Apple, mencakup semua metadata), .txt (teks biasa dengan kolom) dan .json (data terstruktur dengan bidang). Untuk melampirkan ke laporan bug gunakan .logarchive — dapat dibuka di Mac mana pun di Console.app.

Ekspor dari perangkat iOS: melalui Xcode (Devices → Open Console) atau melalui perintah log collect --device --output ./archive.logarchive di terminal. .logarchive yang diperoleh buka di Console.app di Mac — log berasal dari perangkat jarak jauh, tetapi filter dan pencarian berfungsi sama seperti log lokal.

swift
// Ekspor log perangkat iOS melalui terminal
// log collect --device --output ./ios_crash.logarchive
// log show --subsystem com.example.app --last 1h --output json

// Contoh: mengekspor log dari jam terakhir
// log show --predicate 'subsystem == "com.example.myapp"' \
//   --info --debug --last 1h --output json > logs.json

// Penguraian log yang diekspor di Swift
let jsonData = try Data(contentsOf: URL(fileURLWithPath: "logs.json"))
let decoded = try JSONDecoder()
    .decode([LogEntry].self, from: jsonData)

Berbagi log

.logarchive — format optimal untuk dikirim ke rekan kerja atau dilampirkan ke tiket JIRA. File berisi tidak hanya pesan, tetapi juga subsystem, category, timestamps, thread IDs, dan semua metadata. Ukuran arsip jauh lebih kecil daripada log mentah berkat kompresi .tracev3. Sebelum mengirim, pastikan log tidak berisi data pribadi: gunakan filter subsystem aplikasi Anda untuk mengecualikan log sistem yang mungkin berisi informasi rahasia proses lain.

Contoh praktis debugging melalui Console.app

Diagnosis crash tanpa Xcode: jika aplikasi crash saat dijalankan di luar Xcode, Console.app akan menampilkan pesan Fault dari proses. Temukan di panel samping Reports → Crash Reports — di sana ditampilkan laporan crash lengkap dengan tanda tangan dan stack. Gunakan filter subsystem untuk aplikasi Anda dan atur level Error+Fault untuk melihat semua kejadian kritis sebelum crash.

Analisis kinerja melalui Console.app

Console.app memungkinkan pelacakan penundaan dalam aplikasi berdasarkan stempel waktu. Jika antara dua pesan terkait (misalnya, “Permintaan dikirim” dan “Jawaban diterima”) telah berlalu lebih banyak waktu dari yang diharapkan — ini adalah sinyal masalah kinerja. Filter pada subsystem aplikasi Anda dengan level Default akan menampilkan semua kejadian kunci dengan presisi milidetik.

Mencari kebocoran memori: saat kebocoran memori, sistem mengirim peringatan memori melalui os_log dengan kategori memory dan level Error. Di Console.app filter berdasarkan kata memory dan pilih subsystem Anda. Jika peringatan berulang setiap 5–10 detik — aplikasi secara aktif mengonsumsi memori. Selain itu, Anda dapat mengaktifkan log Debug untuk melacak alokasi.

Debugging permintaan jaringan: jika aplikasi Anda menggunakan os_log untuk kejadian jaringan, Console.app akan menampilkan semua permintaan dan respons dengan waktu. Filter category=network mengurangi kebisingan. Jika waktu antara permintaan dan respons melebihi harapan, cari pesan dengan level=Error — mereka akan menunjukkan timeout atau error DNS.

swift
// Struktur untuk mengurai log JSON Console.app
struct LogEntry: Codable {
    let timestamp: String
    let eventMessage: String
    let subsystem: String
    let category: String
    let messageType: UInt8

    var level: String {
        switch messageType {
        case 1: return "Fault"
        case 16: return "Error"
        case 17: return "Debug"
        default: return "Default"
        }
    }
}

Pertanyaan yang Sering Diajukan

Di mana letak Console.app di Mac?

Console.app terletak di folder /Applications/Utilities/. Dapat dibuka melalui Spotlight (⌘Spasi → Console) atau melalui Finder → Program → Utilitas → Konsol. Ikon aplikasi adalah gelembung bicara bergaya dengan roda gigi.

Mengapa Console.app menampilkan <private> alih-alih nilai?

os_log menyembunyikan string dan objek sebagai private secara default. Console.app menampilkannya sebagai <private> dalam mode produksi. Untuk melihat nilai sebenarnya, jalankan aplikasi dari Xcode atau aktifkan profil pengumpulan dengan level Debug untuk subsystem Anda.

Bagaimana cara memfilter hanya log aplikasi saya?

Di panel samping Console.app, pilih subsystem Anda (com.example.app) di bagian Devices → perangkat Anda → Processes. Alternatif — masukkan nama proses di bidang pencarian dan pilih Process: YourApp dari daftar drop-down.

Berapa lama Console.app menyimpan log?

Secara default, macOS menyimpan log di .tracev3 selama 7–14 hari tergantung pada ruang disk yang tersedia. Saat kekurangan ruang, log tertua dihapus secara otomatis. Masa penyimpanan dapat ditingkatkan melalui sudo log config, tetapi ini tidak disarankan untuk mesin produksi.

Bisakah saya melihat log perangkat iOS di Console.app?

Ya, hubungkan perangkat iOS ke Mac melalui USB, buka Xcode → Devices → pilih perangkat → Open Console. Console.app akan menampilkan log perangkat yang terhubung secara real-time. Untuk pengumpulan mandiri, gunakan log collect di terminal dengan flag --device.

Kesimpulan

  • Console.app — alat bawaan macOS untuk melihat log unified logging (os_log), tidak memerlukan Xcode atau instalasi tambahan
  • Filter — pencarian berdasarkan subsystem, category, tingkat keparahan, teks dan regex dengan kondisi AND untuk isolasi log aplikasi tertentu
  • Mode — Live (aliran real-time dengan penundaan 1–5 detik) dan Historical (arsip 7–14 hari) untuk analisis masalah yang telah terjadi
  • Ekspor — .logarchive dengan metadata lengkap untuk dikirim ke rekan kerja, .json untuk analisis terprogram, .txt untuk tampilan cepat
  • Diagnosis — menemukan crash, kebocoran memori, dan error jaringan tanpa Xcode melalui pemfilteran error dan kegagalan kritis dengan indikasi warna Fault
  • Perangkat jarak jauh — melihat log perangkat iOS melalui Xcode atau ekspor melalui log collect dengan pembukaan .logarchive di Console.app di Mac
  • Privasi — os_log menyembunyikan data <private> di Console.app dalam mode produksi; untuk debugging gunakan Xcode atau profil pengumpulan level Debug

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga