2016-07-04 3 views
1

Ich versuche, einige gefilterte Ausgabe von Logcat über die Befehlszeile zu greifen, würde aber lieber keinen Logcat-Stream für Automatisierungszwecke geöffnet haben.Gibt es eine Möglichkeit, eine Momentaufnahme der aktuellen Logcat-Ausgabe zu erstellen, ohne den Ausgabestrom zu öffnen?

Hier ist mein Anwendungsfall: Ich möchte Logcat löschen, einige Instrumentierungstests mit aktiviert ausführen, dann Logcat für Accessibility Fehler überprüfen, die die Klasse in meiner Benutzeroberfläche gefunden hat.

Derzeit ist hier, was ich über die Kommandozeile tun:

//clear logcat history: 
adb logcat -c 
// Run instrumentation tests at this time. 
// Run following command when tests done: 
adb logcat AccessibilityValidator:E *:S 
// ctrl-c to close stream 

Dies tut, was es soll. Ich werde nur die Eingabehilfen-Fehler ausgedruckt sehen. Das Problem ist, dass ich keinen Logcat-Stream öffnen möchte. Ich möchte die Ergebnisse so erhalten, wie sie sind, genau zu dem Zeitpunkt, an dem meine Instrumentierungstests abgeschlossen wurden. Das Öffnen eines Streams ist nicht sehr ideal, da ich dann eine Ctrl-C an meine Pipeline leiten müsste, um den Stream zu schließen. Ich möchte wirklich eine Momentaufnahme der Ausgabe im Klartext erhalten. Ist so etwas möglich?

Vielen Dank!

Edit: Ich konnte finden, was ich glaube, ist eine funktionierende Lösung - ich musste nur die -d Flag hinzufügen. Dadurch wird kein Stream geöffnet und der Inhalt der Logcat-Datei wird gedruckt. Kombiniert mit meiner Filterung, kann ich genau das bekommen, wonach ich gesucht habe.

Antwort

1

Ich konnte finden, was ich glaube, ist eine funktionierende Lösung - ich musste nur die -d Flag hinzufügen. -d wird die Protokolle ausgeben und beenden. Dadurch wird kein Stream geöffnet und der Inhalt der Logcat-Datei wird auf stdout gedruckt. Kombiniert mit meiner Filterung, kann ich genau das bekommen, wonach ich gesucht habe.

Der Befehl I benötigt wird, ist:

adb logcat -d AccessibilityValidator:E *:S 
Verwandte Themen