[JAVA] Ich möchte die Protokollausgabe unter Android vereinfachen

Sie können das Protokoll unter Android ausgeben, indem Sie "Log.d (TAG," some log text ... ")" schreiben. Es war jedoch schwierig, die Variable "TAG" jedes Mal zu deklarieren, je nach Anrufer. Ich dachte, es wäre praktisch, wenn der Dateiname und die Zeilennummer automatisch erfasst und "TAG" gesetzt würden. ** Es ist fertig. ** Erstellen Sie eine Klasse in Texto und erstellen Sie eine Methode wie die folgende. Nennen wir es die "Logger" -Klasse.

Logger.java


public class Logger {
  public static void log(String text) {
    StackTraceElement elem = Thread.currentThread().getStackTrace()[2];
    String tag = elem.getFileName();
    Log.d(tag, text);
  }
}

Rufen Sie dann diese Methode auf, bei der Sie das Protokoll ausspucken möchten.

Logger.log("hello world");

Ausgabebeispiel


09-15 19:52:03.270 15378-15378/com.niusounds.myapps D/MainActivity.java: hello world

Einfach! !!

Übrigens führte das Aufrufen des gleichen Codes von Kotlin zu unterschiedlichen Ergebnissen. Im Fall von Kotlin scheint es, dass Sie "Thread.currentThread (). StackTrace [3]" erhalten müssen.

Log.kt


fun log(text: String) {
    val caller = Thread.currentThread().stackTrace[3]
    val tag = "${caller.fileName}:${caller.lineNumber}"
    Log.d(tag, text)
}

Recommended Posts

Ich möchte die Protokollausgabe unter Android vereinfachen
Ich möchte die Protokollausgabeeinstellung von UtilLoggingJdbcLogger ändern
Ich möchte eine TraceId in das Protokoll einbetten
[Android Studio] Ich möchte eine Maven-Bibliothek unter Android verwenden
(´-`) .. oO (Ich möchte die Standardausgabe" Hallo "leicht finden.
Ich möchte das JDK auf meinem Mac-PC installieren
Ich möchte die if-else-Anweisung für bedingte Verzweigungen in Java vereinfachen
[Android Studio] Ich möchte Einschränkungen für die in EditText [Java] registrierten Werte festlegen.
Ich möchte PHP 7.2 unter Ubuntu 20.04 installieren.
Ich möchte die deaktivierte Option abhängig von der Bedingung zu f.radio_button hinzufügen
[Android] Ich möchte den Listener über die Schaltfläche in ListView abrufen
[Ruby] Ich möchte nur das ungerade Zeichen in der Zeichenfolge ausgeben
Ich möchte den Inhalt der Absicht var_dump
Ich möchte nach dem Dezimalpunkt abschneiden
Ich möchte den Wert in Ruby erhalten
Ich möchte den Bereich anhand des monatlichen Abschlusses beurteilen
Ich möchte die Antwort der Janken-App wissen
Ich möchte den Namen des Posters des Kommentars anzeigen
Ich möchte den Dunkelmodus mit der SWT-App verwenden
Ich möchte die Hauptmethode mit Reflektion aufrufen
[Grober Kommentar] Ich möchte die Zupfmethode heiraten
Ich möchte die Bildlaufposition von UITableView zurückgeben!
Ich möchte der Kommentarfunktion eine Löschfunktion hinzufügen
Ich möchte ausgeben, welches Zeichen eine beliebige Zeichenfolge von links erscheint
Ich möchte nur das Neueste sehen, da das Docker-Protokoll zu groß geworden ist
Ich möchte das in der Datenbank gespeicherte Protokoll morphologisch analysieren und in der Datenbank speichern, um Nachrichten 1 zu klassifizieren
Ich möchte RadioButtons an derselben Stelle auf dem Bildschirm in derselben RadioGroup platzieren
Ich möchte die API mit Rails auf mehreren lokal eingerichteten Docker-Composes treffen
Ich möchte Zeichen konvertieren ...
[Anfänger] Ich möchte die Migrationsdatei ändern.
Ich habe versucht, TabLayout unter Android eine Trennlinie hinzuzufügen
[Rails] [Bootstrap] Ich möchte die Schriftgröße entsprechend ändern
Ich möchte Tomcat auf den Server bringen und die Anwendung starten
Ich war süchtig danach, die Update-Anweisung in MyBatis zu wiederholen
Ich möchte eine Methode aufrufen und die Nummer zählen
Ich möchte die Java 8 DateTime-API (jetzt) langsam verwenden.
Ich möchte ein Formular erstellen, um die Kategorie [Schienen] auszuwählen
Ich möchte eine andere Desinfektionsmethode als Ansicht verwenden.
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben
Ich möchte dem select-Attribut einen Klassennamen geben
Richtige Protokollausgabemethode unter Android (Standardprotokollklasse vs AnkoLogger)
Ich möchte die Liste der Klassen unter dem Paket rekursiv durchsuchen
Ich möchte im gespeicherten Zustand zum selben Bildschirm wechseln
Ich möchte mehrere Rückgabewerte für das eingegebene Argument zurückgeben
[Ruby] Ich möchte die Reihenfolge der Hash-Tabelle umkehren
Ich möchte den Startbefehl mit Docker-Compose an Postgres übergeben.
[Java] Ich möchte Standardeingabe und Standardausgabe mit JUnit testen
Erstellen Sie eine Android-App für diejenigen, die keine Musik über ihre Lautsprecher abspielen möchten