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?

War es hilfreich?

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");

eingeben Bild Beschreibung hier

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)

wollen
08-09 11:13:06.023 20025-20025/com.ardakaplan.application I/Application: IN CLASS : (ENApplication.java:29)   ///   IN METHOD : onCreate
    info
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top