I diversi metodi sono indicazioni di priorità. Come li hai elencati, stanno andando dal meno importante. Penso che il modo in cui li associ specificatamente ai log di debug nel tuo codice dipende dal componente o dall'app su cui stai lavorando, nonché dal modo in cui Android li tratta su diversi stili di build (eng, userdebug e user). Ho lavorato parecchio nei demoni nativi su Android, ed è così che lo faccio. Potrebbe non essere applicabile direttamente alla tua app, ma potrebbe esserci un terreno comune. Se la mia spiegazione sembra vaga, è perché parte di questo è più un'arte che una scienza. La mia regola di base è quella di essere il più efficiente possibile, assicurarti di poter ragionevolmente eseguire il debug del tuo componente senza uccidere le prestazioni del sistema e controllare sempre gli errori e registrarli.
V - Stampe di stato a intervalli diversi o su qualsiasi evento che si verifichi elabora il mio componente. Stampe forse anche molto dettagliate dei payload di messaggi / eventi che il mio componente riceve o invia.
D - Dettagli di eventi minori che si verificano all'interno del mio componente, nonché payload di messaggi / eventi che il mio componente riceve o invia.
I - L'intestazione di tutti i messaggi / eventi che il mio componente riceve o invia, nonché di eventuali parti importanti del payload che sono fondamentali per il funzionamento del mio componente.
W: Tutto ciò che accade è insolito o sospetto, ma non necessariamente un errore.
E - Errori, ovvero cose che non dovrebbero accadere quando le cose funzionano come dovrebbero.
L'errore più grande che vedo fare è che usano troppe cose come V, D e I, ma non usano mai W o E. Se un errore, per definizione, non dovrebbe accadere o dovrebbe accadere molto raramente, allora è estremamente economico per te per registrare un messaggio quando si verifica. D'altra parte, se ogni volta che qualcuno preme un tasto si esegue un Log.i (), si sta abusando della risorsa di registrazione condivisa. Naturalmente, usa il buon senso e fai attenzione con i log degli errori per cose al di fuori del tuo controllo (come errori di rete) o contenuti in loop stretti.
Forse male
Log.i("I am here");
Buona
Log.e("I shouldn't be here");
Tenendo presente tutto ciò, più il codice si avvicina alla "produzione pronta", più è possibile limitare il livello di registrazione di base per il codice (è necessario V in alpha, D in beta, I in produzione o eventualmente anche W in produzione ). Dovresti passare attraverso alcuni semplici casi d'uso e visualizzare i log per assicurarti di poter ancora capire cosa sta succedendo mentre applichi un filtro più restrittivo. Se corri con il filtro qui sotto, dovresti comunque essere in grado di dire cosa sta facendo la tua app, ma forse non ottenere tutti i dettagli.
logcat -v threadtime MyApp:I *:S
Verbose
registrazione. È quello che usi quando vuoi produrre ogni possibile operazione logica.