Filter LogCat, um nur die Nachrichten von Meiner Anwendung in Android?
Habe ich beobachtet, dass wenn ich verwenden Logcat in Eclipse mit ADT für Android, ich bekomme Nachrichten von vielen anderen Anwendungen als gut. Gibt es eine Möglichkeit, filter diese und zeigt nur die Nachrichten von meinem eigenen Anwendung nur.
InformationsquelleAutor der Frage Vinod | 2011-07-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Package-Namen garantiert eindeutig sind, so können Sie verwenden Sie die
Log
Funktion mit dem tag als Ihrem Paket-Namen und filtern Sie dann durch den Paket-Namen:HINWEIS: während des Build-Tools 21.0.3 diese nicht mehr wie TAGS beschränken sich auf 23 Zeichen oder weniger.
Log.<log level>("<your package name>", "message");
adb -d logcat <your package name>:<log level> *:S
-d
bezeichnet ein Tatsächliches Gerät und-e
bezeichnet einen emulator. Wenn es mehr als 1 emulator läuft, können Sie verwenden-s emulator-<emulator number>
(zB-s emulator-5558
)Beispiel:
adb -d logcat com.example.example:I *:S
Oder wenn Sie mit
System.out.print
zum senden von Nachrichten an die Protokolldatei, die Sie verwenden könnenadb -d logcat System.out:I *:S
zu zeigen, die nur Aufrufe von System..Finden Sie alle log-Stufen und mehr info hier: https://developer.android.com/studio/command-line/logcat.html
http://developer.android.com/reference/android/util/Log.html
EDIT: Sieht aus wie ich sprang die Waffe ein wenig und erkannte Sie gefragt wurden logcat in Eclipse. Was ich oben geschrieben ist für die Verwendung von logcat über adb von der Befehlszeile aus. Ich bin mir nicht sicher, ob die gleichen Filter transfer in Eclipse.
InformationsquelleAutor der Antwort shanet
Linux und OS X
Mit ps/grep/cut zu greifen, die PID, dann ist grep für die logcat-Einträge mit PID. Hier ist der Befehl, den ich verwenden:
(Sie verbessern könnte die regex weiter zu vermeiden, das theoretische problem der unabhängigen log-Zeilen mit der gleichen Zahl, aber es ist nie ein Problem für mich)
Funktioniert das auch bei der Abstimmung zwischen mehreren Prozessen.
Windows
Unter Windows können Sie tun:
InformationsquelleAutor der Antwort Tom Mulcahy
Filter hinzufügen
Geben Sie Namen
Wählen Sie Ihren filter.
InformationsquelleAutor der Antwort beryllium
Für mich, dies funktioniert in mac
Terminal
Kam zu dem Ordner, in dem Sie haben
adb
dann geben Sie unten Befehl im terminalHier wird der filter alle logs von
MyTAG
undAndroidRuntime
InformationsquelleAutor der Antwort Inder Kumar Rathore
Update Mai 17
Es ist schon ein paar Jahre und die Sache, die sich geändert haben. Und Eclipse ist nicht mehr offiziell unterstützt. Hier sind also zwei mehr up-to-date-Ansätze:
1. Android Studio
In der
Android monitor
toolbox können Sie filter logcat prodebuggable process
. Normalerweise, wenn Sie eine Anwendung entwickeln, ist es eine debug-Version einer Prozess. Jeder einmal in eine Weile ich habe Probleme mit diesem, und tun Sie das folgende:Tools
->Android
->Enable ADB Integration
.Wenn es bereits aktiviert ist, schalten Sie ihn aus, und dann wieder auf
Ziehen und stecken mit Ihrem mobilen Gerät.
Gibt es auch Optionen zum filtern per regex und der debug-level
2. logcat-Farbe
Dies ist ein nettes python-wrapper auf der Oberseite des
adb logcat
wenn Sie möchten, um eine terminal-basierte Lösung. Die gute Sache über Sie ist, dass Sie können speichern Sie mehrere Konfigurationen und einfach wiederverwenden. Filterung vontags
ist ziemlich zuverlässig. Sie können auch filter vonpackage
zu sehen, die Protokolle von einer oder mehreren apps nur, aber Sie beginnenlogcat-color
rechts, bevor starten Ihrer app.Alte Antwort:
Es scheint, dass ich kann nicht kommentieren auf die früheren Antworten, so werde ich einen neuen.
Dies ist ein Kommentar zu Tom Mulcahy's Antwort, die zeigt, wie der Befehl sollte das ändern, so arbeiten die meisten Geräte, da
adb shell ps
PID-Spalte ist variabel.HINWEIS: Sie folgenden Befehl ein, arbeitet für die Fälle, in denen Sie sich angeschlossen haben, viele Geräte. So
device id
benötigt wird. Andernfalls können Sie einfach weglassen, die Klammern '[', ']'1. Um herauszufinden, die Spalte pid, Typ:
Nun, merken Sie sich die Anzahl Spalten für die PID. Die Nummerierung startet von
1
.2. Dann geben Sie den folgenden:
Einfach die Spalte, die Sie auswendig gelernt
PUT_COLUMN_HERE
z.B.$5
VORBEHALT
Jedes mal, wenn Sie erneut die Anwendung ausführen, müssen Sie re-run der 2. Befehl, denn die Anwendung wird mit einer neuen PID aus der OS.
InformationsquelleAutor der Antwort Paschalis
setzen Sie diese auf applog.sh
dann:
applog.sh com.example.my.package
InformationsquelleAutor der Antwort Gavriel
Seit Android 7.0, logcat --pid-filter-option, und pidof-Befehl ist, ersetzen Sie com.Beispiel.app auf Ihrem Paket-Namen.
(ubuntu terminal /Seit Android 7.0)
oder
Weitere Infos über pidof-Befehl:
https://stackoverflow.com/a/15622698/7651532
InformationsquelleAutor der Antwort You Kim
Diese wurden arbeiten für mich in der git-bash:
InformationsquelleAutor der Antwort wubwubb
Schrieb ich ein shell-Skript, für den Filter logcat durch den Paketnamen, die ich denke, ist zuverlässiger als
Es benutzt /proc/$pid/cmdline, um herauszufinden, die tatsächliche pid, dann ein grep auf logcat
https://gist.github.com/kevinxucs/7340e1b1dd2239a2b04a
InformationsquelleAutor der Antwort kevin
ADT-v15 für Eclipse lassen, geben Sie den Namen einer Anwendung (was ist eigentlich der Wert des Pakets in Ihrem androidmanifest.xml).
Ich Liebe es, in der Lage zu filtern, die von app, aber das neue logcat hat ein bug mit den autoscroll. Wenn du nach oben scrollst ein wenig zu sehen in den bisherigen logs, es scrollt automatisch zurück nach unten in ein paar Sekunden. Es scheint, scrollen 1/2 Weg, bis das Protokoll hält es aus und springt zurück nach unten, aber das ist oft nutzlos.
EDIT: ich habe versucht, die Angabe einer app-filter von der Kommandozeile-aber kein Glück. Wenn jemand zahlen aus ODER wie Stoppt man die autoscroll, lassen Sie es mich bitte wissen.
InformationsquelleAutor der Antwort Aaron T Harris
Wenn Sie Android Studio Sie können wählen Sie den Vorgang aus, die Sie empfangen wollen logcats.
Hier ist der screenshot.
InformationsquelleAutor der Antwort dmSherazi
Mithilfe der Windows-Eingabeaufforderung:
adb logcat -d | findstr <package>
.*Dies wurde zuerst erwähnt durch jj_aber es hat mich Alter, um finden es in die Kommentare...
InformationsquelleAutor der Antwort rareclass
Ich bin nicht sicher, ob es einen Weg gibt, um nur system-Nachrichten bezüglich Ihrer Anwendung, aber Sie können filter basierend auf einer Schnur. Wenn Sie dabei ein Protokoll innerhalb des Programms, können Sie einfach schließen Sie ein bestimmtes einzigartiges Schlüsselwort, und filter basiert auf diesem Wort.
InformationsquelleAutor der Antwort bjpcomet
Nutzen Sie einfach die Filter im inneren des logcat. Dort befindet sich eine Schaltfläche, mit der Sie Filter hinzufügen. Geben Sie einfach die ID der Anwendung, stellen Sie sicher, dass es ausgewählt ist, danach, und du bist fertig, ganz einfach!
InformationsquelleAutor der Antwort Gerard
Versuchen: Fenster -> Einstellungen -> Android -> LogCat. Ändern von Feld "Zeige logcat anzeigen, wenn ..." den Wert "VERBOSE". Es hat mir geholfen.
InformationsquelleAutor der Antwort Siruk Viktor
Wenn Sie Eclipsedrücken Sie die grüne + - Zeichen in der logCat Fenster unten und legen Ihrem Paket-Namen (com.Beispiel.yourappname) in der durch Anwendung Name box. Auch, wählen Sie einen beliebigen Namen für Sie angenehm in Filter-Name - box und klicken Sie auf ok. Sie sehen nur die Nachrichten, die in Bezug auf Ihre Anwendung, wenn der filter, den Sie gerade Hinzugefügt wird, ausgewählt aus dem linken Bereich in der logCat.
InformationsquelleAutor der Antwort Khaled Alanezi
Geben Sie Ihre Login-Namen. Ich rief mir "wawa".
In Android Studio, gehen Sie zu Android-> Bearbeiten-Filter-Konfigurationen
Geben Sie dann den Namen, den Sie gab die Protokolle. In meinem Fall, es heißt "wawa". Hier sind einige Beispiele für die Arten von Filter, die Sie tun können. Sie können filter System.out, System.err, Protokolle oder Paket-Namen:
InformationsquelleAutor der Antwort Gene
Ich habe versucht, Tom Mulcahy, die Antwort aber leider war es nicht die Arbeit für Anwendungen, die mehrere Prozesse, so Editiere ich Sie, um meine Bedürfnisse anzupassen.
InformationsquelleAutor der Antwort Ahmed Hegazy
Dies ist wahrscheinlich die einfachste Lösung.
Oben auf der Lösung von Tom Mulcahy, Sie können noch weiter zu vereinfachen, ist es wie folgt:
Nutzung ist einfach, wie normale alias. Geben Sie einfach den Befehl in der shell:
Den alias-setup macht es einfacher. Und die regex macht es robust für den multi-Prozess-apps, vorausgesetzt, Sie kümmern sich um die Haupt-Prozess nur.
Des coz Sie können mehrere Aliase für jeden Prozess, wie Sie bitte. Oder verwenden Sie hegazy Lösung. 🙂
Darüber hinaus, wenn Sie möchten, legen Sie den Protokolliergrad, es ist
InformationsquelleAutor der Antwort Frank Du
Verwenden
-s
!Quelle
InformationsquelleAutor der Antwort KrisWebDev
Dieser funktioniert bei mir mit USB-debugging:
Verbinden Sie das Gerät und verwenden:
adb shell
Einfache Nutzung der logcat:
logcat | grep com.youapp.packagename
InformationsquelleAutor der Antwort Lennoard Silva
Neben Tom Mulcahy's Antwort, wenn Sie wollen-filter nach PID auf Windows-Konsole, können Sie eine kleine batch-Datei so:
InformationsquelleAutor der Antwort Lawyno
Auf Windows 10, mit Ionic, was hervorragend funktioniert hat, war für mich kombinieren 'findstr" mit dem "INFO:CONSOLE" generiert, die von allen App-Nachrichten.
Also, mein Befehl in der Befehlszeile aus:
InformationsquelleAutor der Antwort Lud Akell
Als Variante können Sie die Verwendung von third-party-Skript PID-Katze von Jake Wharton. Dieses Skript hat zwei wesentliche Vorteile:
Aus der Dokumentation:
Einer Ausgabe sieht so aus
InformationsquelleAutor der Antwort yoAlex5
Nun möglich ist zu geben-tag:nameofthetag oder in der app:nameoftheapp filter ohne hinzufügen neuer Filter die gespeicherten Filter bar
InformationsquelleAutor der Antwort Fernando Gallego
In intelliJ (und wahrscheinlich auch in eclipse auch) Sie können filter der logcat-Ausgabe, indem Sie text webviewso druckt er im Grunde alles phonegap ist die Herstellung von
InformationsquelleAutor der Antwort Marcin Mikołajczyk
Noch eine andere Variante von Gavriel ist
applog.sh
mit Unterstützung von mehreren Geräten und Anwendungen mit mehreren Prozessen:Verwendung:
applog.sh com.example.my.package [-s <specific device>]
InformationsquelleAutor der Antwort ls.illarionov
Dies ist natürlich eine Frage zielte auf die Verwendung von Logcat aus außerhalb der developer-Gerät, jedoch, wenn Sie anzeigen möchten Logcat Ausgabe auf das Gerät (programmgesteuert), Sie brauchen nur dieses:
Den
*:D
am Ende filtert jede Nachricht unter Debug-log-Ebene, sondern lassen Sie aus.Leiten Sie die Ausgabe, sagen wir, eine TextView, siehe zum Beispiel hier.
InformationsquelleAutor der Antwort Tom Ladek
In linux, dieser arbeitete für mich:
InformationsquelleAutor der Antwort spectralsun