So geben Sie bei der Entwicklung für Android Nachrichten an die Eclipse-Konsole aus

164

Wie kann ich beim Entwickeln und Debuggen einer Android-App Nachrichten (wie ein Flag) an die Eclipse-Konsole (oder das Protokoll) drucken?

Emanuil Rusev
quelle

Antworten:

153

Anstatt zu versuchen, auf der Konsole Logauszugeben , wird auf LogCat ausgegeben, das Sie in Eclipse finden, indem Sie zu: Fenster-> Ansicht anzeigen-> Andere… -> Android-> LogCat

Schauen Sie sich die Referenz für anLog .

Die Verwendung von LogCat bietet den Vorteil, dass Sie je nach Protokolltyp unterschiedliche Farben drucken können, z. B.: Log.dDruckt blau, Log.edruckt orange. Sie können auch nach Protokoll-Tag , Protokollnachricht , Prozess-ID und / oder Anwendungsname filtern . Dies ist sehr nützlich, wenn Sie nur die Protokolle Ihrer App anzeigen und die anderen Systemelemente getrennt halten möchten.

m6tt
quelle
3
Meine Güte, wie einfach es sein kann ... diese kleinen Leckerbissen helfen denen von uns, die auf diesen Plattformen NEU sind. Danke m6tt! Zu Ihrer Information: Es gibt hier eine Filteroption, die SEHR VIEL hilft ~
Sage
48
Log.v("blah", "blah blah");

Sie müssen die Android-Protokollansicht in Eclipse hinzufügen, um sie anzuzeigen. Abhängig vom Schweregrad der Nachricht gibt es auch andere Methoden (Fehler, ausführlich, Warnung usw.).

Alex
quelle
2
+1 Wie wäre es damit in der Bibliothek? Ich habe es versucht, aber es zeigt nichts auf logcat.
Roy Lee
29

System.out.println()gibt auch an LogCat aus. Der Vorteil der Verwendung von good old System.out.println()ist, dass Sie ein Objekt wie drucken könnenSystem.out.println(object) auf der Konsole wenn Sie überprüfen müssen, ob eine Variable initialisiert ist oder nicht.

Log.d, Log.v, Log.wEtc Methoden können Sie nur Zeichenfolgen an die Konsole und nicht Objekte drucken. Um dies zu umgehen (wenn Sie es wünschen), müssen Sie verwenden String.format.

Tirtha
quelle
3
Oder für Objektinstanzen können Sie immer verwenden toString(). Dies ist, was System.out.println(Object)intern tut. Wenn die toString()Methode Objectselbst verwendet wird (z. B. für Array-Typen), erhalten Sie möglicherweise keine nützliche Ausgabe.
Maarten Bodewes
spart mir das tippen. Ich liebe es immer, wenn Objekte auf sich selbst aufpassen. ;; )
Tirtha
Das Objekt wird nicht ausgegeben, sondern genauso gedruckt wie Log.
Francisco Corrales Morales
..und es erspart mir immer noch die Erstellung einer Zeichenfolgenkonstante für Log.whatever und die Eingabe jedes Mal, wenn ich etwas in der Konsole haben möchte, und das Formatieren des Objekts in die Zeichenfolge.
Tirtha
1
Wenn Ihr Objekt null ist, löst toString () offensichtlich eine NPE aus. Sie sollten niemals toString () für ein Objekt in einer Protokollanweisung aufrufen, sondern eine Protokollierungsbibliothek verwenden, die diese Überprüfungen durchführt, wenn Sie nur ein Objekt übergeben.
Thomas Eizinger
15

Ich benutze die Log.d Methode auch bitte importieren import android.util.Log;

Log.d("TAG", "Message");

Beachten Sie jedoch, dass Sie, wenn Sie die Debug-Meldungen anzeigen möchten, nicht Ausführen als verwenden, sondern " Debuggen als" verwenden und dann Android-Anwendung auswählen. Andernfalls werden die Debug-Meldungen nicht angezeigt.

Mahmud Ahsan
quelle
0

Ich verwende das folgende Protokollformat, um meinen Inhalt in logCat zu drucken

Log.e("Msg","What you have to print");
Madhu
quelle
Der erste Parameter ist das Tag, nicht die Nachricht .
Msanford