2015-05-14 3 views
9

Es gibt mehrere Fragen zu dem Thema, aber keiner von ihnen scheint das spezielle Problem anzugehen, das ich habe.Debuggen einer WebView (Ionic) -App auf Android über Logcat

Ich entwickle eine App mit Cordova/Ionic, und Drucken von Debugging-Informationen, die ich mit console.log() mit adb logcat CordovaLog:D *:S ausgab, funktionierte gut bis einige Updates. Jetzt kann ich nicht herausfinden, wie man logcat die Ausgabe richtig filtert, so dass ich nur die Debugging-Informationen von meiner App bekommen konnte.

Die Protokollierung selbst funktioniert. Wenn ich keine Filter und umleiten Ausgabe in eine Datei gesetzt ist, kann ich meine Debug-Informationen unter all den anderen Debug-Nachrichten sehen, und es sieht wie folgt aus:

I/Web Console: Event triggered: device.ready:1 

Protokollierung Bildschirm funktioniert auch, aber mit einer Rate von etwa 100 Zeilen pro Sekunde. Ich habe mindestens Folgendes zum Filtern der Ausgabe versucht:

adb logcat -s "Web Console" 
adb logcat "Web Console":V 
adb logcat "Web Console":* 
adb logcat -s Web 
adb logcat Web:V 
adb logcat "myApp":V 
adb logcat myApp:V 
adb logcat -s myApp 

... und wahrscheinlich andere habe ich schon vergessen. Sie drucken entweder absolut nichts oder absolut alles aus den Systemdiensten.

Ich bin auf Windows, so kann ich nicht grep, und das Gerät, das ich debuggen auf Android 4.2.2 ausgeführt wird, so kann ich GapDebug nicht verwenden, und noch scheint es möglich, auf das Gerät zuzugreifen Loggen Sie über chrome://inspect in Chrome.

Ich möchte wirklich, wirklich verstehen, wie das Filtern der Logcat-Ausgabe funktioniert. Ich bin nicht bereit, alles in eine Datei zu schreiben und dann durchzugehen.

+1

'adb logcat -s" Webkonsole ": *' ... Ich würde empfehlen, keine Leerzeichen im Tag-Namen zu verwenden, obwohl –

+0

@AlexP. Nein, immer noch Nada. Das Tag wird von Cordova definiert, und ich habe keine Ahnung, wie ich das ändern soll. Früher war es CordovaLog, und wie ich schon sagte, hat alles wunderbar funktioniert. Entweder gibt es in den Dokumenten keine Informationen darüber, wie man den Tag-Namen ändert oder mein Google Fu versagt mir kläglich. – Schlaus

+1

'adb shell" logcat -s 'Webkonsole': * "' –

Antwort

15

Es scheint, dass logcat Tags nicht korrekt mit Leerzeichen lesen kann. Anstatt also ich schlage vor, mit grep auf dem Gerät:

adb shell "logcat | grep 'Web Console'" 
+0

unglaublich, ich habe keine Worte ... – Alex

+0

gespeichert eine Menge Kopfschmerzen – lk404

+0

Ich schreibe einfach 'adb logcat | grep app = mi' – deFreitas

5

Alternativ, wenn adb auf Linux oder Unix-basierten OS/git bash runing:

adb logcat | grep 'Web Console' 
1

Während Sie grep unter Linux/Unix verwenden können, findstr Macht Ihre Wahl unter Windows:

adb logcat | findstr /C:"Web Console" 

Wenn Sie es vorziehen grep unter Windows zu verwenden, können Sie es vonbekommenhttp://gnuwin32.sourceforge.net/packages/grep.htm.

+0

die angenommene Antwort funktioniert das gleiche in allen 3 unterstützte Betriebssysteme.keine Notwendigkeit für Windows nur Lösung –

+0

Sie haben absolut Recht (Grep funktioniert auf allen gängigen Betriebssystemen) - Ich poettete diese Antwort a), um Benutzer, die nicht vertraut mit den GNU-Tools b) zu berücksichtigen, dass der Benutzer "I bin unter Windows so kann ich nicht grep "und c) um einen Link zu grep (einmal mehr an die Zielgruppe Benutzer, die meist unter Windows arbeiten und vielleicht nicht einmal von grep wissen) – ingenuine

+1

Sie fehlen den Punkt, dass in der angenommenen Antwort 'grep' läuft auf dem Gerät selbst. Es spielt also keine Rolle, ob 'Grep' auf dem Host-PC-System verfügbar ist. –