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