Leggere log macOS da Terminale: comandi utili

Leggere log macOS da Terminale è possibile senza installare applicazioni aggiuntive, grazie al comando integrato log. Lo strumento consente di consultare gli eventi già registrati, seguire i messaggi mentre vengono generati e filtrare i risultati per processo, servizio o parola chiave. Il comando funziona con il sistema di log unificato introdotto da Apple nelle versioni moderne di macOS. Per le ricerche più semplici non servono privilegi di amministratore, anche se alcuni dati possono essere nascosti dalle protezioni della privacy. Con pochi parametri è possibile isolare errori di un’app, problemi di rete o attività sospette avvenute in un intervallo preciso.

Quali informazioni contiene il log unificato di macOS

Il sistema di log unificato di macOS raccoglie messaggi prodotti dal sistema operativo, dai servizi Apple e dalle applicazioni installate. I dati non sono organizzati soltanto in semplici file di testo: ogni evento può includere data e ora, processo responsabile, livello di severità, sottosistema e testo del messaggio.

Il comando log permette di consultare principalmente due tipi di informazioni:

  • Gli eventi storici già memorizzati dal sistema.
  • Gli eventi generati in tempo reale da macOS e dalle applicazioni.
  • I messaggi classificati come errore, avviso, informazione o debug.
  • Gli eventi associati a un processo, a un sottosistema o a una parola contenuta nel testo.

Le registrazioni possono essere soggette a rotazione automatica, quindi macOS non conserva necessariamente ogni evento prodotto dall’installazione del sistema. Inoltre, alcuni messaggi contengono dati privati oscurati o non accessibili senza autorizzazioni specifiche.

Per verificare la sintassi disponibile sulla versione installata di macOS, è possibile consultare la pagina di manuale integrata:

man log

Come leggere i log storici di macOS

Il comando log show visualizza gli eventi già presenti nel sistema. Senza filtri può produrre una quantità molto elevata di righe, perciò è preferibile limitare subito l’intervallo temporale o il tipo di messaggio.

Visualizzare gli eventi recenti

Per leggere gli eventi dell’ultima ora, apri Terminale dalla cartella Applicazioni > Utility e usa:

log show --last 1h

Il parametro --last accetta intervalli come ore, giorni o minuti. Per esempio, il comando seguente limita la ricerca agli ultimi trenta minuti:

log show --last 30m

Per rendere l’output più leggibile in formato simile ai log tradizionali, aggiungi l’opzione --style syslog:

log show --last 1h --style syslog

Il risultato può essere lungo e Terminale può mostrare rapidamente molte righe. Per leggerlo una schermata alla volta, invia l’output al comando less:

log show --last 1h --style syslog | less

Premi la barra spaziatrice per avanzare, usa le frecce per scorrere e premi Q per uscire dalla visualizzazione.

Cercare gli eventi di un intervallo preciso

Quando il problema è avvenuto in un momento noto, puoi usare --start e --end con data e ora. Un esempio è:

log show --start "2026-08-13 09:00:00" --end "2026-08-13 10:00:00"

Il formato della data deve essere coerente con quello riconosciuto dalla versione di macOS installata. Se il comando restituisce un errore, la sintassi accettata può dipendere dalla localizzazione o dalla release del sistema; in quel caso l’opzione --last è generalmente più semplice.

Come filtrare gli errori e i messaggi di un’app

La ricerca senza filtri è utile per un controllo generale, ma un predicato consente di selezionare soltanto gli eventi che interessano. Il parametro --predicate usa il linguaggio dei predicati di Apple e può filtrare campi come process, subsystem, category ed eventMessage.

Cercare una parola nel testo del messaggio

Per cercare la parola “network” negli eventi dell’ultima ora, usa:

log show --last 1h --predicate 'eventMessage CONTAINS[c] "network"'

L’operatore CONTAINS[c] esegue una ricerca senza distinguere tra lettere maiuscole e minuscole. Per cercare errori relativi a un’applicazione, sostituisci la parola con il nome visualizzato nel messaggio o con un termine specifico del problema.

Un filtro più generale per individuare eventi che contengono “error” è:

log show --last 2h --style compact --predicate 'eventMessage CONTAINS[c] "error"'

La presenza della parola “error” non dimostra sempre un guasto: alcuni servizi registrano messaggi tecnici o tentativi ripetuti che non hanno conseguenze visibili.

Filtrare un processo specifico

Per cercare gli eventi generati da un processo, usa il campo process. Per esempio, il filtro seguente cerca i messaggi prodotti da Finder:

log show --last 1h --predicate 'process == "Finder"'

Il nome deve corrispondere al processo registrato da macOS, che non sempre coincide con il nome completo dell’applicazione. Se il filtro non restituisce risultati, cerca prima il nome del processo usando una parola nel campo eventMessage oppure riduci l’intervallo temporale.

Per combinare processo e parola chiave, puoi usare l’operatore AND:

log show --last 1h --predicate 'process == "Finder" AND eventMessage CONTAINS[c] "error"'

Mostrare messaggi informativi e di debug

Per impostazione predefinita, l’output può non includere tutti i livelli meno importanti. Le opzioni --info e --debug ampliano i risultati, ma possono aumentare sensibilmente il numero di righe:

log show --last 30m --info --debug

È consigliabile usare queste opzioni soltanto con un intervallo breve o insieme a un predicato. I messaggi di debug non sono sempre attivi per ogni servizio e la loro disponibilità può variare in base alla versione di macOS.

Come monitorare i log in tempo reale

Il comando log stream mostra gli eventi mentre vengono generati. È utile per riprodurre un problema, collegare una periferica, aprire un’applicazione o eseguire un’operazione di rete osservando contemporaneamente ciò che registra macOS.

Per avviare il monitoraggio degli eventi recenti e interromperlo con Control-C, usa:

log stream

Per seguire soltanto gli eventi informativi ed evitare parte del rumore, puoi specificare il livello:

log stream --level info

Per monitorare una parola chiave mentre esegui un’operazione, applica un filtro:

log stream --predicate 'eventMessage CONTAINS[c] "USB"'

Per osservare un’applicazione specifica:

log stream --predicate 'process == "Finder"'

Il monitoraggio in tempo reale può produrre molte righe al secondo. Un predicato preciso rende più facile associare un messaggio all’azione appena eseguita e riduce il carico visivo su Terminale.

Come salvare e interpretare l’output del comando log

Per conservare una ricerca in un file di testo, puoi reindirizzare l’output con il simbolo >:

log show --last 1h --style syslog > ~/Desktop/log-macos.txt

Il file viene salvato sulla Scrivania dell’utente e può essere aperto con un editor di testo. Evita di condividere pubblicamente log non controllati, perché possono contenere nomi utente, percorsi locali, indirizzi di rete, identificativi di dispositivo o informazioni sulle attività svolte.

Per consultare soltanto alcune righe dell’output, puoi usare grep:

log show --last 1h --style syslog | grep -i "error"

Il comando grep filtra il testo già prodotto da log, ma non sostituisce --predicate: per ricerche complesse è preferibile filtrare direttamente i campi strutturati degli eventi.

Se macOS nega l’accesso a una parte dei dati, non significa necessariamente che il comando sia errato. Le protezioni di privacy e sicurezza possono limitare i dettagli disponibili, soprattutto per processi di sistema, dati personali e componenti protetti. L’uso di sudo non garantisce l’accesso a tutte le registrazioni e dovrebbe essere evitato quando non è necessario.

Per un’analisi tecnica più ampia, macOS include anche il comando log collect, che crea un archivio diagnostico destinato alla risoluzione dei problemi. Questo archivio può contenere molte informazioni sul sistema e va condiviso soltanto con persone o servizi affidabili:

sudo log collect --output ~/Desktop/diagnostica-macos.logarchive

Il comando richiede normalmente l’autenticazione amministrativa e può impiegare tempo in base alla quantità di dati raccolti. Per la semplice consultazione degli eventi quotidiani, log show e log stream sono generalmente sufficienti.

Leggere log macOS da Terminale diventa più efficace quando si combina un intervallo breve con un filtro mirato e si conserva l’output solo dopo averne verificato il contenuto.

FAQ

Il comando principale è log show, che visualizza gli eventi già registrati. L’opzione –last limita la ricerca a un intervallo recente, come l’ultima ora o l’ultimo giorno.

Usa log stream in Terminale. Il comando mostra gli eventi in tempo reale e si interrompe premendo Control-C.

Sì, puoi filtrare il campo process con l’opzione –predicate. Il nome deve corrispondere al processo effettivamente registrato da macOS.

macOS può oscurare o limitare i dati per motivi di privacy e sicurezza. L’uso di sudo non garantisce l’accesso a tutte le registrazioni protette.

Reindirizza l’output di log show verso un file, per esempio sulla Scrivania. Controlla il contenuto prima di condividere il file, perché può contenere informazioni personali.

Altri articoli di questa serie:

PDF Strumenti PDF gratis Nel browser, senza upload Apri gli strumenti