Visualizza i log con Logcat

La finestra Logcat in Android Studio ti consente di eseguire il debug dell'app. visualizzare i log del dispositivo in tempo reale, ad esempio i messaggi aggiunto alla tua app con il corso Log, Messaggi dai servizi in esecuzione su Android o da messaggi di sistema, ad esempio quando un container la raccolta dei dati. Quando un'app genera un'eccezione, Logcat mostra un messaggio. seguita dall'analisi dello stack associata contenente i link alla riga di codice.

Inizia a utilizzare la finestra Logcat

Per visualizzare i messaggi di log relativi all'app, procedi nel seguente modo.

  1. In Android Studio, crea ed esegui la tua app su un dispositivo o emulatore.
  2. Seleziona Visualizza > Finestre degli strumenti > Logcat dalla barra dei menu.

Per impostazione predefinita, Logcat scorre fino alla fine. Facendo clic sulla visualizzazione Logcat o scorrendo lo scorrimento usando la rotellina del mouse disattiva questa funzione. Per riattivarlo, fai clic su Scorri fino alla fine Scorri fino all'icona Fine dalla barra degli strumenti. Puoi anche utilizzare la barra degli strumenti per cancellare, mettere in pausa o riavviare Logcat.

UI della finestra Logcat

Figura 1. Logcat formatta i log per semplificare la scansione di informazioni utili, come tag e messaggi e di identificare diversi tipi di log, come avvisi ed errori.

Come leggere i log

Ogni log include dati relativi a data, timestamp, ID processo e thread, tag, nome la priorità e il messaggio associato. Tag diversi hanno un colore univoco che consente di identificare il tipo di log. Ogni voce di log ha una priorità pari a FATAL, ERROR, WARNING, INFO, DEBUG o VERBOSE.

Ad esempio, il seguente messaggio di log ha una priorità DEBUG e un tag ProfileInstaller:

2022-12-29 04:00:18.823 30249-30321 ProfileInstaller        com.google.samples.apps.sunflower    D  Installing profile for com.google.samples.apps.sunflower

Configurare la visualizzazione del log

La visualizzazione log standard mostra la data, l'ora del processo e l'ID thread, il tag e il thread di ciascun log il nome del pacchetto, la priorità e il messaggio associato. Per impostazione predefinita, i messaggi righe non sono racchiuse nella vista log, ma puoi utilizzare Fodera morbida Icona avvolgimento avvolgente dalla barra degli strumenti di Logcat.

Puoi passare alla visualizzazione Compatta, che ha meno informazioni di visualizzazione predefinite. facendo clic su Configura le opzioni di formattazione Logcat dalla barra degli strumenti Logcat.

Per configurare ulteriormente la quantità di informazioni che vuoi visualizzare, seleziona Modifica visualizzazioni e scegli se visualizzare timestamp, tag, gli ID processo o i nomi dei pacchetti.

Cambiare la combinazione di colori

Per modificare la combinazione di colori, vai su Android Studio > Impostazioni > Editor > Combinazione di colori. Per modificare la combinazione di colori della visualizzazione del log: Seleziona Android Logcat. Per modificare la combinazione di colori del filtro, seleziona Filtro Logcat.

Opzioni di configurazione aggiuntive

Per ulteriori opzioni di configurazione, vai su Android Studio > Impostazioni > Strumenti > Logcat. Da qui, puoi scegliere il logcat dimensione del buffer del ciclo, il filtro predefinito per le nuove finestre Logcat e se vuoi aggiungere filtri dalla cronologia al completamento automatico.

Utilizzare Logcat in più finestre

Le schede ti consentono di passare facilmente da un dispositivo all'altro o da una query all'altra. Puoi creare più schede Logcat facendo clic su Nuova scheda Icona Nuova scheda. Se fai clic con il pulsante destro del mouse su una scheda, puoi rinominarla e riorganizzarla.

Inoltre, puoi suddividere la visualizzazione all'interno di una scheda per aiutarti a visualizzare tra due set di log. Per creare una suddivisione, fai clic con il tasto destro del mouse sulla visualizzazione log o fai clic sull'opzione Riquadri suddivisi nella barra degli strumenti e seleziona Dividi a destra o Dividi verso il basso. Per chiudere una suddivisione, fai clic con il tasto destro del mouse e Seleziona Chiudi. Ogni suddivisione ti consente di impostare la connessione del dispositivo, visualizzare opzioni e query.

Più finestre Logcat Figura 2. Dividi le finestre Logcat in Android Studio.

Nella barra degli strumenti Logcat puoi scorrere fino alla fine dei log oppure puoi fare clic su una linea per mantenerla visibile.

In Android Studio, puoi generare ricerche di coppie chiave-valore direttamente dalla campo di query principale. Questo sistema di query fornisce precisione di ciò che vuoi ed escludere i log in base alle coppie chiave-valore. Anche se hai la possibilità di utilizzare espressioni regolari, non è necessario per le query. Per vedere suggerimenti, premi Ctrl + Space nel campo della query.

Elenco di suggerimenti nel campo della query Figura 3. Premi Ctrl + Space nel campo della query per visualizzare un elenco di query suggerite.

Di seguito sono riportati alcuni esempi di chiavi che puoi utilizzare nella query:

  • tag: corrisponde al campo tag della voce di log.
  • package: corrisponde al nome del pacchetto dell'app di logging.
  • process: corrisponde al nome del processo dell'app di logging.
  • message: corrisponde alla parte del messaggio della voce di log.
  • level: corrisponde al livello di log grave specificato o superiore, ad esempio DEBUG.
  • age: corrisponde se il timestamp della voce è recente. I valori vengono specificati come numero seguito da una lettera che specifica l'unità di tempo: s per i secondi, m per minuti, h per ore e d per giorni. Ad esempio, solo i filtri age: 5m messaggi registrati negli ultimi 5 minuti.

Negazione ed espressioni regolari

I seguenti campi supportano la corrispondenza di negazione ed espressione regolare: tag, package, message e line.

La negazione viene espressa anteponendo un - al nome del campo. Ad esempio: -tag:MyTag corrisponde alle voci di log le cui tag non contengono la stringa MyTag.

La corrispondenza delle espressioni regolari viene espressa aggiungendo un ~ al nome del campo. Ad esempio, tag~:My.*Tag.

È possibile combinare i modificatori di negazione ed espressione regolare. Ad esempio: -tag~:My.*Tag.

Operatori logici e parentesi

Il linguaggio di query supporta gli operatori AND e OR espressi da & e | e parentesi. Ad esempio:

(tag:foo | level:ERROR) & package:mine

Tieni presente che viene applicata la precedenza normale degli operatori, quindi:

tag:foo | level:ERROR & package:mine

Viene valutato come segue:

tag:foo | (level:ERROR & package:mine)

Operatori logici impliciti

Se non vengono applicati operatori logici, viene automaticamente impostato il linguaggio di query valuta più termini del filtro key-value non negati con la stessa chiave di un OR e tutti gli altri con un AND.

Ad esempio:

tag:foo tag:bar package:myapp

Viene valutato come segue:

(tag:foo | tag:bar) & package:myapp

Tuttavia:

tag:foo -tag:bar package:myapp

Viene valutato come segue:

tag:foo & -tag:bar & package:myapp

Se più termini di query sono separati da spazi vuoti senza un operatore logico, vengono trattati come AND con bassa precedenza. Ad esempio, il termine foo bar tag:bar1 | tag:bar2 equivale a 'foo bar' & (tag: bar1 | tag: bar2).

Query speciali

package:mine

La chiave pacchetto supporta un valore speciale mine. Questo valore speciale corrisponde a qualsiasi dei pacchetti contenuti nel progetto aperto.

level

La query level corrisponde al livello di log del messaggio Logcat, in cui il livello della voce di log è maggiore o uguale al livello di query.

Ad esempio, level:INFO corrisponde a qualsiasi voce di log con un livello di log pari a INFO, WARN, ERROR o ASSERT. Il livello non è sensibile alle maiuscole. I livelli validi sono: VERBOSE, DEBUG, INFO, WARN, ERROR e ASSERT.

age

La query age abbina le voci in base al relativo timestamp ed è formattata come age:<number><unit>, dove

  • <number> è un numero intero
  • <unit> è uno dei seguenti valori: s, m, h e d (secondi, minuti, ore e giorni).

Dato l'elenco seguente, la query age corrisponde ai messaggi di log con un nell'intervallo descritto dal valore. Ad esempio: la query age:5m corrisponde alle voci con un timestamp non precedente a 5 minuti fa.

age:30s
age:5m
age:3h
age:1d

Tieni presente che il timestamp viene confrontato con il timestamp dell'host, non con quello dell'host dispositivo connesso. Se l'ora del dispositivo non è impostata correttamente, questa query potrebbe non funzionare come previsto.

Chiave is

Puoi utilizzare la chiave is nel seguente modo:

  • is:crash corrisponde alle voci di log che rappresentano un arresto anomalo dell'applicazione (native o Java).
  • is:stacktrace corrisponde alle voci di log che rappresentano qualsiasi elemento simile a una Traccia stack Java, indipendentemente dal livello di log.

Chiave name

La chiave name ti consente di assegnare un nome univoco a un filtro salvato, in modo che facilmente identificabili nel menu a discesa della cronologia dei filtri. Anche se non ottieni quando specifichi name più di una volta, l'IDE utilizza solo l'ultima valore specificato per name nella query.

Visualizzare la cronologia delle query

Puoi visualizzare la cronologia delle query facendo clic su Mostra cronologia Icona filtro accanto al campo della query. Per aggiungere una query ai preferiti in modo che rimanga nella parte superiore del elenco di tutti i tuoi progetti Studio, fai clic sulla stella accanto a esso. Puoi anche usa il tasto name: per rendere più facili da riconoscere le query preferite. Per ulteriori informazioni informazioni, consulta Query speciali.

UI per aggiungere una query ai preferiti

Figura 4. Aggiungere una query ai preferiti facendo clic sulla stella corrispondente.

Monitora i log relativi agli arresti anomali e ai riavvii delle app

Quando Logcat rileva che il processo dell'app è stato interrotto e riavviato, visualizza un messaggio nell'output, ad esempio PROCESS ENDED e PROCESS STARTED. Il riavvio di Logcat conserva la configurazione della sessione, come la suddivisione delle schede, filtri e opzioni di visualizzazione, così puoi continuare facilmente la sessione.

Finestra di logcat per arresti anomali dell&#39;app

Figura 5. Al riavvio del processo dell'app, Logcat visualizza un messaggio che indica che il processo è terminato e poi è iniziato.