Console.app: wat is het, functies en hoe logs te lezen in macOS

Auteur: IT Sectr Gepubliceerd: 2026-05-29 Leestijd: 8 min

Console.app is een ingebouwde macOS-applicatie voor het bekijken, filteren en analyseren van systeem- en gebruikerslogs. Het toont berichten van Apple’s unified logging systeem (os_log) in realtime, waarmee de ontwikkelaar crashes, fouten en debugberichten kan zien zonder verbinding met Xcode. Volgens Apple Support ondersteunt Console.app filtering op subsystem, category, ernstniveau en proces, evenals export van logs naar .logarchive voor overdracht aan de ontwikkelaar. Het is een onmisbaar hulpmiddel voor het diagnosticeren van problemen op Mac: filters en opgeslagen zoekopdrachten maken het mogelijk om snel fouten in de applicatie te vinden te midden van duizenden systeemberichten.

Belangrijkste punten

  • Console.app — ingebouwde macOS-logviewer die werkt met Apple’s unified logging systeem
  • Filtering — zoeken op subsystem, category, niveau (Error, Fault, Debug) en berichttekst met ondersteuning voor reguliere expressies
  • Modi — Live (realtime stroom) en Historical (gearchiveerde logs), schakelen via de werkbalk
  • Export — opslaan van logs in .logarchive, .txt en .json voor overdracht aan de ontwikkelaar of bijvoegen bij een bugrapport
  • Opgeslagen zoekopdrachten — benoemde filters voor typische scenario’s: alle applicatiefouten, netwerklogs, CrashReporter

Wat is Console.app

Console.app is een grafische interface voor Apple’s unified logging systeem. Het heeft de oude Console-applicatie vervangen (als onderdeel van macOS) en biedt toegang tot alle systeem- en applicatielogs die zijn vastgelegd via de API’s os_log, os_trace en syslog. Console.app is beschikbaar in /Applications/Utilities/ op elke Mac.

In tegenstelling tot Xcode, dat alleen logs toont van de vanuit de IDE gestarte applicatie, geeft Console.app logs van alle processen op het systeem tegelijkertijd weer. Dit maakt het mogelijk om problemen te diagnosticeren die alleen optreden bij het starten van de applicatie buiten Xcode of op de achtergrond. Console.app toont ook systeemlogs — kernel, launchd, WindowServer, wat nuttig is voor het debuggen van low-level problemen.

Console.app vereist geen installatie van extra hulpmiddelen of internetverbinding. Alle gegevens worden lokaal opgeslagen in de .tracev3-database en de applicatie werkt volledig offline. Voor het bekijken van logs van een andere Mac of iOS-apparaat wordt de opdracht log collect gebruikt, waarna .logarchive wordt geopend in Console.app.

Interface van Console.app

De interface van Console.app bestaat uit drie hoofdgebieden: het zijpaneel met filters, de berichtentabel en het detailpaneel van het geselecteerde bericht. Het zijpaneel bevat de secties Devices (beschikbare logbronnen), Reports (systeemrapporten over crashes) en Saved Searches (opgeslagen zoekopdrachten).

De berichtentabel toont een lijst met logs met kolommen: Time (tijdstempel), Category (categorie), Level (ernstniveau — kleurindicatie), Process (procesnaam), Message (berichttekst). Klik op een willekeurig bericht opent het detailpaneel, waar subsystem, activity identifier, thread ID en de volledige tekst met opmaak worden weergegeven.

Console.app markeert berichten met kleur: rood voor Fault, geel voor Error, blauw voor Debug, grijs voor Info. Standaardberichten worden niet gemarkeerd. Dit maakt het mogelijk om de logstroom visueel te scannen en direct kritieke gebeurtenissen op te merken.

swift
// Logs die in Console.app verschijnen
import OSLog

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

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

// Deze berichten zijn zichtbaar in Console.app met filter „myapp“

Filters en zoeken in Console.app

Filtering — de hoofdfunctie van Console.app, die een stroom van duizenden berichten per seconde omzet in een leesbare lijst. Het zoekveld bovenaan ondersteunt AND-voorwaarden: meerdere woorden gescheiden door spaties tonen alleen berichten die alle woorden bevatten. Bijvoorbeeld myapp error toont alle logs van de applicatie myapp met niveau Error.

Subsystem-filter in het zijpaneel maakt het mogelijk om een of meerdere subsystemen te selecteren. Dit is de snelste manier om logs van een specifieke applicatie te isoleren van systeemberichten. Category-filter is beschikbaar na selectie van het subsystem — het toont alle categorieën die door de geselecteerde applicatie worden gebruikt. Level-filter beperkt berichten op ernstniveau: alleen fouten of alleen debugberichten kunnen worden getoond.

FiltertypeVoorbeeldResultaat
Tekstcrash paymentBerichten die crash EN payment bevatten
Subsystemcom.example.myappAlleen logs van de opgegeven applicatie
LevelError + FaultAlleen fouten en kritieke crashes
CategorynetworkBerichten met categorie network
TijdLaatste 1 uurBerichten alleen uit geselecteerd interval

Reguliere expressies in zoeken

Het zoekveld van Console.app ondersteunt regex via de constructie REGEX:pattern. Voorbeeld: REGEX:error.*tim(e|out) vindt alle berichten die „erroren“ bevatten en een woord dat begint met „tim“ en eindigt op „e“ of „out“. Regex werkt alleen in het zoekveld, niet in subsystem- of category-filters.

Live en Historical modi

Live — de realtime modus, waarin Console.app nieuwe berichten toont zodra ze verschijnen in de circulaire buffer van de kernel. Deze modus is standaard actief en geschikt voor het debuggen van een actieve applicatie: u start de applicatie en ziet de logs met een vertraging van 1–5 seconden. De Live-knop (of ⌘L) schakelt de stroom in en uit.

Historical — de modus voor het bekijken van het archief. Console.app bewaart alle berichten van de afgelopen 7–14 dagen (instelbaar in het systeem) in de .tracev3-database. De Historical-modus opent dit archief en maakt zoeken met elk filter mogelijk, niet alleen de huidige stroom. Dit is onmisbaar voor het analyseren van problemen die ’s nachts zijn opgetreden of wanneer de applicatie zonder verbinding met de Mac werkte.

Het schakelen tussen modi gebeurt via de Live-knop op de werkbalk. Wanneer Live is uitgeschakeld, toont Console.app historische gegevens. In deze modus kan door de tijdlijn worden genavigeerd met behulp van de kalender of de ← →-knoppen. Historical-gegevens zijn alleen beschikbaar voor logs die op schijf zijn opgeslagen — berichten die zijn overschreven in de circulaire buffer komen niet in het archief.

Exporteren en delen van logs

Console.app ondersteunt export van gefilterde logs in verschillende formaten. File → Export → Save selecteert het formaat: .logarchive (native Apple-formaat, inclusief alle metadata), .txt (platte tekst met kolommen) en .json (gestructureerde gegevens met velden). Voor het bijvoegen bij een bugrapport gebruikt u .logarchive — het kan op elke Mac in Console.app worden geopend.

Export van iOS-apparaat: via Xcode (Devices → Open Console) of via de opdracht log collect --device --output ./archive.logarchive in de terminal. Het verkregen .logarchive opent u in Console.app op de Mac — de logs zijn afkomstig van het externe apparaat, maar de filters en zoekopdrachten werken hetzelfde als met lokale logs.

swift
// Export van logs van iOS-apparaat via terminal
// log collect --device --output ./ios_crash.logarchive
// log show --subsystem com.example.app --last 1h --output json

// Voorbeeld: logs van het afgelopen uur exporteren
// log show --predicate 'subsystem == "com.example.myapp"' \
//   --info --debug --last 1h --output json > logs.json

// Parsen van geëxporteerde logs in Swift
let jsonData = try Data(contentsOf: URL(fileURLWithPath: "logs.json"))
let decoded = try JSONDecoder()
    .decode([LogEntry].self, from: jsonData)

Logs delen

.logarchive — het optimale formaat voor verzending aan een collega of bijvoegen bij een JIRA-ticket. Het bestand bevat niet alleen berichten, maar ook subsystem, category, timestamps, thread IDs en alle metadata. De grootte van het archief is aanzienlijk kleiner dan ruwe logs dankzij .tracev3-compressie. Controleer vóór verzending of de logs geen privégegevens bevatten: gebruik het subsystem-filter van uw applicatie om systeemlogs uit te sluiten die vertrouwelijke informatie van andere processen kunnen bevatten.

Praktische voorbeelden van debuggen via Console.app

Diagnose van een crash zonder Xcode: als de applicatie is gecrasht bij het starten buiten Xcode, toont Console.app een Fault-bericht van het proces. Zoek in het zijpaneel Reports → Crash Reports — daar worden volledige crashrapporten met handtekening en stack weergegeven. Gebruik het subsystem-filter voor uw applicatie en stel het niveau Error+Fault in om alle kritieke gebeurtenissen voor de crash te zien.

Prestatieanalyse via Console.app

Console.app maakt het mogelijk om vertragingen in de applicatie te volgen op basis van tijdstempels. Als er tussen twee gerelateerde berichten (bijvoorbeeld „verzoek verzonden“ en „antwoord ontvangen“) meer tijd is verstreken dan verwacht — dit is een signaal van een prestatieprobleem. Het filter op subsystem van uw applicatie met niveau Default toont alle belangrijke gebeurtenissen met millisecondeprecisie.

Geheugenlek zoeken: bij een geheugenlek stuurt het systeem een geheugenwaarschuwing via os_log met categorie memory en niveau Error. Filter in Console.app op het woord memory en selecteer uw subsystem. Als de waarschuwing elke 5–10 seconden wordt herhaald — verbruikt de applicatie actief geheugen. Aanvullend kunnen Debug-logs worden ingeschakeld voor het volgen van allocaties.

Debuggen van netwerkverzoeken: als uw applicatie os_log gebruikt voor netwerkgebeurtenissen, toont Console.app alle verzoeken en antwoorden met timing. Het filter category=network vermindert ruis. Als de tijd tussen verzoek en antwoord de verwachting overtreft, zoek dan naar berichten met level=Error — deze wijzen op time-outs of DNS-fouten.

swift
// Structuur voor het parsen van JSON-logs van 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"
        }
    }
}

Veelgestelde vragen

Waar bevindt Console.app zich op Mac?

Console.app bevindt zich in de map /Applications/Utilities/. Het kan worden geopend via Spotlight (⌘Spatie → Console) of via Finder → Programma’s → Hulpprogramma’s → Console. Het pictogram van de applicatie is een gestileerde spraakballon met een tandwiel.

Waarom toont Console.app <private> in plaats van waarden?

os_log maskeert strings en objecten standaard als private. Console.app toont ze als <private> in de productiemodus. Om de werkelijke waarden te zien, start u de applicatie vanuit Xcode of schakelt u een verzamelprofiel met Debug-niveau in voor uw subsystem.

Hoe filter ik alleen de logs van mijn applicatie?

Selecteer in het zijpaneel van Console.app uw subsystem (com.example.app) in de sectie Devices → uw apparaat → Processes. Alternatief — voer de procesnaam in het zoekveld in en selecteer Process: YourApp uit de vervolgkeuzelijst.

Hoe lang bewaart Console.app logs?

Standaard bewaart macOS logs in .tracev3 gedurende 7–14 dagen, afhankelijk van de beschikbare schijfruimte. Bij ruimtegebrek worden de oudste logs automatisch verwijderd. De bewaartermijn kan worden verlengd via sudo log config, maar dit wordt niet aanbevolen voor productiemachines.

Kan ik logs van een iOS-apparaat bekijken in Console.app?

Ja, sluit het iOS-apparaat aan op de Mac via USB, open Xcode → Devices → selecteer het apparaat → Open Console. Console.app toont de logs van het aangesloten apparaat in realtime. Voor zelfstandige verzameling gebruikt u log collect in de terminal met de vlag --device.

Samenvatting

  • Console.app — ingebouwd macOS-hulpprogramma voor het bekijken van unified logging (os_log)-logs, zonder Xcode of extra installaties
  • Filters — zoeken op subsystem, category, ernstniveau, tekst en regex met AND-voorwaarden voor het isoleren van logging van een specifieke applicatie
  • Modi — Live (realtime stroom met 1–5 seconden vertraging) en Historical (7–14 dagen archief) voor analyse van problemen die al zijn opgetreden
  • Export — .logarchive met volledige metadata voor overdracht aan collega’s, .json voor programmatische analyse, .txt voor snelle weergave
  • Diagnose — vinden van crashes, geheugenlekken en netwerkfouten zonder Xcode via filtering op fouten en kritieke crashes met Fault-kleurtindicatie
  • Externe apparaten — bekijken van logs van iOS-apparaat via Xcode of export via log collect met daaropvolgend openen van .logarchive in Console.app op Mac
  • Privacy — os_log maskeert <private>-gegevens in Console.app in productiemodus; voor debuggen gebruikt u Xcode of een verzamelprofiel op Debug-niveau

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook