Wie schreibe ich in Android auf die Log-Ausgaben?
Frage
Ich möchte einige Debug-Ausgabe in das Protokoll schreiben, es mit logcat zu überprüfen.
Wenn ich etwas zu System.out schreibe dies bereits in logcat angezeigt wird.
Was ist die saubere Art und Weise in das Protokoll zu schreiben, und fügen Sie Ebene und Tags zu meiner Ausgabe?
Lösung
Schauen Sie in android.util.Log
. Damit können Sie in das Protokoll mit verschiedenen Protokollebenen zu schreiben, und Sie die Ausgabe verschiedene Tags zur Gruppe angeben.
Zum Beispiel
Log.w("myApp", "no network");
ausgeben wird eine Warnung mit dem Tag myApp und die Nachricht kein Netzwerk.
Andere Tipps
Der Tag wird verwendet, nur die einfache Verwaltung Ihrer Ausgabe zu finden, weil die Ausgabe von LogCat manchmal lange sehr sein kann. Sie können irgendwo in Ihrer Klasse definieren:
private static final String TAG = "myApp";
und verwenden Sie es beim Debuggen
Log.v (TAG "tat etwas");
Sie können die Anwendung auch einen Filter, um nur für den Tag zu suchen.
Verwendung android.util.Log
und die statischen Methoden definierten dort (z.B. e()
, w()
).
import android.util.Log;
und dann
Log.i("the your message will go here");
Bitte beachten Sie die Protokolle als diese Weise
Log.e("ApiUrl = ", "MyApiUrl") (error)
Log.w("ApiUrl = ", "MyApiUrl") (warning)
Log.i("ApiUrl = ", "MyApiUrl") (information)
Log.d("ApiUrl = ", "MyApiUrl") (debug)
Log.v("ApiUrl = ", "MyApiUrl") (verbose)
String one = object.getdata();
Log.d(one,"");
Vor kurzem fand ich diesen Ansatz zu schreiben Protokolle in Android, die ich denke, super genial ist.
public static final boolean FORCED_LOGGING = true;
private static final int CALLER_STACK_INDEX = 3;
public static void showLogs(String message) {
if (FORCED_LOGGING) {
StackTraceElement caller = Thread.currentThread().getStackTrace()[CALLER_STACK_INDEX];
String fullClassName = caller.getClassName();
String className = fullClassName.substring(fullClassName.lastIndexOf('.') + 1);
String methodName = caller.getMethodName();
int lineNumber = caller.getLineNumber();
Log.i("*** " + className + "." + methodName + "():" + lineNumber + "\n" , message);
}
}
Sie können meine libary genannt RDALogger verwenden. Hier ist Github Link .
Mit dieser Bibliothek können Sie Ihre Nachricht mit Methodennamen / Klassennamen / Zeilennummer und Anker-Link anmelden. Mit diesem Link, wenn Sie sich anmelden klicken, geht Bildschirm auf diese Zeile Code.
Bibliothek verwenden zu können, müssen Sie unter Implementierungen tun.
in Root-Ebene gradle
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
in App-Ebene gradle
dependencies {
implementation 'com.github.ardakaplan:RDALogger:1.0.0'
}
Für Bibliothek initialisieren, sollten Sie wie folgt beginnen (in Application.class oder vor dem ersten Gebrauch)
RDALogger.start("TAG NAME").enableLogging(true);
Und als Sie können melden Sie sich, was Sie wollen;
RDALogger.info("info");
RDALogger.debug("debug");
RDALogger.verbose("verbose");
RDALogger.warn("warn");
RDALogger.error("error");
RDALogger.error(new Throwable());
RDALogger.error("error", new Throwable());
Und schließlich Ausgabe zeigt Ihnen alles, was Sie (Klassennamen, Methodenname, Anker Link, message)
wollen08-09 11:13:06.023 20025-20025/com.ardakaplan.application I/Application: IN CLASS : (ENApplication.java:29) /// IN METHOD : onCreate
info