Skip to content

Exportaciones NDJSON de log show y cronologías

Exporte los registros unificados de macOS con log show (ndjson, json, texto), evite errores de zona horaria y construya cronologías CSV o Timesketch.

Publicado el 4 min de lectura

En resumen. Para una cronología, exporte con log show --info --debug --timezone UTC --style ndjson: un objeto JSON por entrada, todos los campos conservados y las horas en UTC. Tenga claro qué opciones utilizó, porque los valores predeterminados ocultan las entradas Info, Debug y los signposts. Unified Log Parser lee estas exportaciones y genera archivos CSV, NDJSON y Timesketch a partir de tracev3 o de exportaciones.

Los estilos de salida de log show

log show admite cinco estilos (log help show los enumera): default, syslog, json, ndjson y compact.

EstiloCada entrada esConservaPrecaución
ndjsonun objeto JSON por líneatodos los camposarchivos grandes
jsonun objeto dentro de una gran matriztodos los camposdebe analizarse entero o en flujo
defaultuna línea de texto + líneas de continuaciónhora, hilo, tipo, actividad, PID, TTL, proceso, emisor, subsistema:categoríamensajes de varias líneas
sysloguna línea similar a sysloghora, host, proceso, PID, emisorsin columna de tipo
compactuna línea cortacódigo de tipo, proceso, PID, hilosolo milisegundos, sin desfase UTC

Los campos NDJSON incluyen timestamp, eventType, messageType, processImagePath, processID, threadID, userID, senderImagePath, subsystem, category, activityIdentifier, bootUUID, formatString y eventMessage; los signposts añaden signpostName, signpostType y signpostScope. La última línea de una exportación NDJSON es un resumen ({"count":…,"finished":1}), no una entrada.

Opciones que cambian el resultado

log show --archive case.logarchive --info --debug --timezone UTC --style ndjson > case.ndjson
  • --info y --debug: sin ellas, solo se muestran los mensajes Default, Error y Fault (además de las actividades y los estados).
  • --signpost: los signposts permanecen ocultos salvo que se soliciten.
  • --timezone UTC: de lo contrario, cada entrada se imprime en la zona horaria registrada con ella, y en las versiones actuales no se respeta la variable TZ.
  • --start / --end / --last: limitan la ventana; los formatos aceptados incluyen YYYY-MM-DD HH:MM:SS y un desfase explícito.
  • --predicate: filtra en el momento de la exportación; es útil, pero no podrá recuperar lo que haya descartado.

Anote el comando en sus notas: dos exportaciones del mismo archivo con opciones distintas son evidencias distintas.

Leer exportaciones en el analizador

Arrastre una exportación .ndjson, .json o de texto al analizador. Las exportaciones se leen en flujo en bloques de 8 MB, así que una matriz JSON de 400 MB no supone ningún problema. Los estilos de texto se reconocen por su línea de encabezado (Timestamp Thread Type Activity PID TTL) o por las primeras líneas; las líneas de continuación se integran en el mensaje anterior. Una exportación de estilo compact se interpreta como UTC y se marca, porque este estilo no incluye desfase.

Comparativa de analizadores

HerramientaEntradaNotas
log show / Consolaarchivo o almacén en vivo, en un Macla reconstrucción de referencia
Mandiant macos-unifiedlogstracev3 + uuidtext + timesync, cualquier SObiblioteca en Rust y ejemplo unifiedlog_iterator (CSV / JSONL)
Analizador unified_logging de Plasotracev3 en una imagen o carpetahay que indicarlo explícitamente: no forma parte del preajuste macOS predeterminado
mac_apt UNIFIEDLOGEXPORTimagen de discoexporta los archivos para un analizador
Unified Log Parserarchivo, carpetas, ZIP / tar.gz, exportacionesmacos-unifiedlogs en WebAssembly con correcciones de fidelidad a log show, filtros, triaje y exportaciones

Validado con un archivo real, Unified Log Parser coincidió con log show en alrededor del 99 % de los mensajes de registro, actividad y estado. Las diferencias restantes se deben sobre todo a los decodificadores de objetos propios de Apple (por ejemplo, un nombre de host que log show muestra y el analizador presenta como <private>), a los marcadores de truncamiento en argumentos muy largos y a los signposts, que log show presenta con marcadores de descripción internos.

Construir una cronología

Desde el analizador, Exportar escribe las entradas mostradas (con los filtros y el intervalo de tiempo actuales) en cuatro formatos:

  • CSV: una fila por entrada con timestamp_utc, tipo, nombre y ruta del proceso, PID, hilo, ID de usuario, subsistema, categoría, emisor, actividad, mensaje, cadena de formato, UUID de arranque, marcas de triaje y archivo de origen. Las celdas que empiezan por =, +, - o @ se entrecomillan para evitar la inyección de fórmulas en hojas de cálculo.
  • NDJSON: nombres de campo de log show con marcas de tiempo UTC (2026-09-14 10:05:02.610004+0000), más triageFlags y evidence. Reimportable.
  • JSON: las mismas entradas dentro de una envoltura que registra los archivos de origen, el intervalo de tiempo y los filtros.
  • CSV para Timesketch: columnas message, datetime, timestamp_desc y timestamp (microsegundos), listas para importar.

Exporte una ventana estrecha y filtrada para cada pregunta (por ejemplo, "TCC y Terminal, 10:00–10:55") en lugar del almacén completo: las cronologías están hechas para leerse.

A continuación: las consultas de triaje para decidir qué incluir en la cronología, o el recorrido en el navegador.

Artículos relacionados

Paso a paso: abra un .logarchive de macOS, una carpeta diagnostics o una exportación de log show en Unified Log Parser, revise hallazgos y exporte.
Qué registran los registros unificados de macOS, dónde están tracev3, uuidtext y timesync, qué pueden demostrar y cómo leerlos en una investigación.
Recopile los registros unificados de macOS con log collect, una copia de diagnostics y uuidtext, UAC, Velociraptor o mac_apt, sin lagunas.