
Ein plattformübergreifender Parser für Apple UnifiedLogs!
Eine einfache Rust-Bibliothek, die beim Parsen der macOS-Unified-Log-Dateien helfen kann.
Unified Logs wurden in macOS Version 10.12 (Sierra, 2016) eingeführt. Teil von Apples Ziel, ein einheitliches Logformat für alle Apple-Produkte zu schaffen. Sie existieren auf macOS, iOS, watchOS, tvOS. Die Unified Logs ersetzen viele der alten Logformate, die Apple verwendete. Diese Bibliothek kann verwendet werden, um diese Logdateien zu parsen.
Derzeit extrahierte Daten umfassen:
Ein Beispiel-Binary ist zum Download verfügbar
unifiedlog_iterator – Kann ein Logarchiv in eine JSOL- oder CSV-Datei parsen. Es kann auch die Logs auf einem Live-System parsen. Die Ausgabedatei wird ziemlich groß seinEs wurde mit Millionen von Logeinträgen getestet. Aufgrund der Komplexität des Unified-Log-Formats gibt es jedoch einige Einschränkungen:
Keine Unterstützung für Fehlercode-Lookups im printf-Stil. Diese Bibliothek führt keine Fehlercode-Lookups für Logmeldungen durch. Der native log-Befehl auf macOS unterstützt Fehlercode-Lookups, wenn er auf printf-Stil-%m-Meldungen trifft.
Zum Beispiel die Logmeldung: 'Failed to open file, error: %m'
a. Diese Bibliothek gibt aus:
Failed to open file, error: 1
b. Der macOS-Log-Befehl gibt aus:
Failed to open file, error: no such file or directory
Diese Bibliothek unterstützt die meisten benutzerdefinierten Objekte in Logmeldungen. Nicht unterstützte Objekte werden jedoch base64-kodiert.