Skip to content

NDJSON-Exporte mit log show und Unified-Log-Zeitleisten

macOS Unified Logs mit log show exportieren (ndjson, json, Text), Zeitzonenfallen vermeiden, Parser vergleichen und CSV- oder Timesketch-Zeitleisten bauen.

Veröffentlicht am 4 Min. Lesezeit

Kurz gesagt. Für eine Zeitleiste exportieren Sie mit log show --info --debug --timezone UTC --style ndjson: ein JSON-Objekt pro Eintrag, alle Felder erhalten, Zeiten in UTC. Halten Sie fest, welche Optionen Sie verwendet haben, denn die Standardeinstellungen blenden Info, Debug und Signposts aus. Der Unified Log Parser liest diese Exporte und schreibt CSV-, NDJSON- und Timesketch-Dateien aus tracev3 oder aus Exporten.

Die Ausgabestile von log show

log show kennt fünf Stile (log help show listet sie auf): default, syslog, json, ndjson und compact.

StilEin Eintrag istEnthältAchtung
ndjsonein JSON-Objekt pro Zeilealle Feldergroße Dateien
jsonein Objekt in einem großen Arrayalle Feldermuss als Ganzes geparst oder gestreamt werden
defaulteine Textzeile + FolgezeilenZeit, Thread, Typ, Activity, PID, TTL, Prozess, Sender, Subsystem:Kategoriemehrzeilige Meldungen
syslogeine syslog-ähnliche ZeileZeit, Host, Prozess, PID, Senderkeine Typspalte
compacteine kurze ZeileTypcode, Prozess, PID, Threadnur Millisekunden, kein UTC-Offset

Zu den NDJSON-Feldern gehören timestamp, eventType, messageType, processImagePath, processID, threadID, userID, senderImagePath, subsystem, category, activityIdentifier, bootUUID, formatString und eventMessage; Signposts ergänzen signpostName, signpostType und signpostScope. Die letzte Zeile eines NDJSON-Exports ist eine Zusammenfassung ({"count":…,"finished":1}), kein Eintrag.

Optionen, die das Ergebnis verändern

log show --archive case.logarchive --info --debug --timezone UTC --style ndjson > case.ndjson
  • --info und --debug: Ohne sie werden nur Default-, Error- und Fault-Meldungen angezeigt (plus Activities und State).
  • --signpost: Signposts bleiben ausgeblendet, sofern Sie sie nicht anfordern.
  • --timezone UTC: Andernfalls wird jeder Eintrag in der mit ihm gespeicherten Zeitzone ausgegeben, und die Variable TZ wird in aktuellen Versionen nicht beachtet.
  • --start / --end / --last: begrenzen das Zeitfenster; akzeptierte Formate sind unter anderem YYYY-MM-DD HH:MM:SS und ein expliziter Offset.
  • --predicate: filtert schon beim Export – nützlich, aber was Sie herausgefiltert haben, bekommen Sie nicht zurück.

Notieren Sie den Befehl: Zwei Exporte desselben Archivs mit unterschiedlichen Optionen sind unterschiedliche Beweismittel.

Exporte im Parser lesen

Ziehen Sie einen .ndjson-, .json- oder Text-Export auf den Parser. Exporte werden in Blöcken zu 8 MB gestreamt, sodass auch ein JSON-Array von 400 MB kein Problem ist. Textstile werden an ihrer Kopfzeile (Timestamp Thread Type Activity PID TTL) oder an den ersten Zeilen erkannt; Folgezeilen werden in die vorherige Meldung eingefaltet. Ein Export im Stil compact wird als UTC gelesen und markiert, weil der Stil keinen Offset enthält.

Parser im Vergleich

WerkzeugEingabeHinweise
log show / KonsoleArchiv oder Live-Speicher, auf einem Macdas Referenz-Rendering
Mandiant macos-unifiedlogstracev3 + uuidtext + timesync, jedes BetriebssystemRust-Bibliothek und Beispiel unifiedlog_iterator (CSV / JSONL)
Plaso-Parser unified_loggingtracev3 in einem Image oder Ordnerexplizit angeben: nicht im Standard-Preset für macOS enthalten
mac_apt UNIFIEDLOGEXPORTDisk-Imageexportiert die Dateien für einen Parser
Unified Log ParserArchiv, Ordner, ZIP / tar.gz, Exportemacos-unifiedlogs in WebAssembly mit Korrekturen für log show-Treue, Filter, Triage, Exporte

An einem echten Archiv validiert, stimmte der Unified Log Parser bei rund 99 % der Log-, Activity- und State-Meldungen mit log show überein. Die verbleibenden Unterschiede betreffen vor allem Apples eigene Objekt-Decoder (etwa ein Hostname, den log show rendert, wo der Parser <private> zeigt), Kürzungsmarkierungen bei sehr langen Argumenten sowie Signposts, die log show mit internen Beschreibungsmarkierungen darstellt.

Eine Zeitleiste erstellen

Im Parser schreibt Exportieren die angezeigten Einträge – aktuelle Filter und Zeitraum – in vier Formaten:

  • CSV: eine Zeile pro Eintrag mit timestamp_utc, Typ, Prozessname und -pfad, PID, Thread, User-ID, Subsystem, Kategorie, Sender, Activity, Meldung, Formatstring, Boot-UUID, Triage-Markierungen und Quelldatei. Zellen, die mit =, +, - oder @ beginnen, werden in Anführungszeichen gesetzt, um Formel-Injection in Tabellenkalkulationen zu verhindern.
  • NDJSON: Feldnamen von log show mit UTC-Zeitstempeln (2026-09-14 10:05:02.610004+0000), dazu triageFlags und evidence. Erneut importierbar.
  • JSON: dieselben Einträge in einer Hülle, die Quelldateien, Zeitraum und Filter festhält.
  • Timesketch-CSV: die Spalten message, datetime, timestamp_desc und timestamp (Mikrosekunden), bereit zum Import.

Exportieren Sie pro Fragestellung ein enges, gefiltertes Zeitfenster (zum Beispiel „TCC und Terminal, 10:00–10:55“) statt des gesamten Speichers: Zeitleisten sind zum Lesen da.

Weiter geht es mit den Triage-Abfragen, um zu entscheiden, was in die Zeitleiste gehört, oder mit der Browser-Anleitung.

Verwandte Artikel

Schritt für Schritt: .logarchive, diagnostics-Ordner oder log-show-Export im kostenlosen Unified Log Parser öffnen, Befunde sichten, filtern, exportieren.
Was macOS Unified Logs aufzeichnen, wo tracev3, uuidtext und timesync liegen, was sie beweisen können und was nicht – und wie Sie sie für Ermittlungen lesen.
macOS Unified Logs mit log collect, Rohkopie von diagnostics und uuidtext, UAC, Velociraptor oder mac_apt sichern – ohne Lücken, die das Parsen stören.