Domanda

Voglio scrivere un output di debug per il registro di rivedere con logcat.

Se scrivo qualcosa da System.out questo è già visualizzato nel logcat.

Qual è il modo pulito di scrivere nel registro e aggiungere i livelli e tag per la mia uscita?

È stato utile?

Soluzione

android.util.Log . Esso consente di scrivere al registro con i vari livelli di log, ed è possibile specificare diversi tag per raggruppare l'output. Ad esempio

Log.w("myApp", "no network");

uscita volontà un avviso con il tag myApp e il messaggio nessuna rete.

Altri suggerimenti

Il Tag è solo utilizzato per la ricerca di vostra uscita, perché l'output di LogCat può essere a volte molto lunghi. È possibile definire da qualche parte nella tua classe:

  

private static final String TAG = "myApp";

e utilizzarlo durante il debug

  

Log.v (TAG, "ha fatto qualcosa");

entrare descrizione dell'immagine qui

È possibile applicare anche un filtro per la ricerca solo per il tag.

Usa android.util.Log ei metodi statici definiti là (per esempio, e(), w()).

import android.util.Log;

e quindi

Log.i("the your message will go here"); 

Si prega di consultare i registri come in questo modo,

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

Recentemente ho trovato questo approccio alla scrittura log in Android, che credo è super impressionante.

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

È possibile utilizzare il mio libary chiamato RDALogger. Ecco github link .

Con questa libreria, è possibile accedere il tuo messaggio con nome del metodo / nome della classe / numero di linea e di ancoraggio di collegamento. Con questo link, quando si fa clic su di registro, schermo va a questa riga di codice.

Per usare libreria, è necessario effettuare implementazioni di seguito.

a livello di root Gradle

allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }

a livello di applicazione Gradle

dependencies {
            implementation 'com.github.ardakaplan:RDALogger:1.0.0'
    }

Per l'inizializzazione della libreria, si dovrebbe iniziare in questo modo (in Application.class o prima del primo utilizzo)

RDALogger.start("TAG NAME").enableLogging(true);

E quanto è possibile accedere quello che vuoi;

    RDALogger.info("info");
    RDALogger.debug("debug");
    RDALogger.verbose("verbose");
    RDALogger.warn("warn");
    RDALogger.error("error");
    RDALogger.error(new Throwable());
    RDALogger.error("error", new Throwable());

E infine spettacoli di uscita tutto quello che volete (nome della classe, nome del metodo, collegamento con un ancoraggio, un messaggio)

08-09 11:13:06.023 20025-20025/com.ardakaplan.application I/Application: IN CLASS : (ENApplication.java:29)   ///   IN METHOD : onCreate
    info
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top