2012-03-11 5 views
7

capisco che per filtrare i messaggi di log Android possiamo usare qualcosa di similemessaggi di log Filtra per pacchetto PID o applicazione in Android

adb logcat ActivityManager:I MyApp:D *:S 

Ma, nella mia domanda, sto usando diverse TAGS per diverse attività e I desidera filtrare tutti i log di questa applicazione solo. Qual è il modo migliore per farlo?

Devo specificare tutti i i tag nel comando?

Oppure utilizzare un tag comune attraverso l'applicazione, l'unica altra alternativa?

Guardando messaggi di log in Eclipse, ho notato che c'è una colonna chiamata PID e un altro di nome Application (contiene il nome del pacchetto di app) che sono entrambi (ovviamente) uguale per differenti Tag per una data applicazione. Ciò suggerisce che dovrebbe essere possibile filtrare non solo con Tag ma anche con pid/package.

+0

Atul, utilizzare ActivityManager per ottenere il vostro applicazione PID quindi riempimento sulle basi del PID –

+1

ahh, ho aggiornato la mia domanda prima di aver visto il tuo commento. È possibile filtrare per pid, questo è quello che voglio fare. –

+0

@imrankhan come filtriamo per pid? –

risposta

5

Uso un formato TAG comune come segue.

Ad Activities per esempio, ho definito una base Activity classe ...

public class MyCompanyActivity extends Activity { 
    protected final String TAG = this.getClass().getName(); 
    ... 
} 

Tutto Activities creo estendere che Activity, ad esempio.

public class FishActivity extends MyCompanyActivity { 
    ... 
} 

Il risultato è che FishActivity avrà un TAG che è ...

com.mycompany.myapp.FishActivity 

Tutto quello che ho poi bisogno di fare è di filtrare il logcat su com.mycompany.myapp

+0

Grazie, questo approccio sembra un modo pulito di farlo, non avremmo nemmeno bisogno di dichiarare la variabile TAG in ogni attività, ma solo chiederci c'è qualche effetto collaterale nell'usare questo approccio? Dal momento che hai detto "Io uso ..." quindi penso che questo dovrebbe funzionare bene senza alcuna cattura, giusto? –

+0

@AtulGoyal: Non riesco a pensare a nessun effetto collaterale e ho utilizzato questo approccio da quando ho iniziato con lo sviluppo di Android. Ho creato classi base per 'Applicazione',' Attività', 'Servizio' e così via. Per questo motivo non ho mai bisogno di definire manualmente un 'TAG' ed è sempre disponibile e riflette il nome della classe con il prefisso univoco' package.appname'. Ho persino utenti che mi aiutano a eseguire il debug della mia app utilizzando qualcosa come Catlog e il filtro sul nome della società e inviano i risultati via email. Assicura che ottengo solo informazioni relative alle mie app e nient'altro che potrebbe violare la privacy degli utenti, ad esempio. – Squonk

+0

Un'altra cosa, come si filtra il logcat su 'com.mycompany.myapp' Il comando logcat non funzionerebbe per me quando si digita' adb logcat com.mycompany.myapp: I *: S' ma funziona per 'adb logcat com.mycompany.myapp.FishActivity: I *: S' –