Como faço para escrever saídas no log no Android?
Pergunta
Quero escrever alguma saída de depuração no log para revisá -lo com o Logcat.
Se eu escrever algo para o System.out, isso já foi exibido no Logcat.
Qual é a maneira limpa de escrever no log e adicionar níveis e tags à minha saída?
Solução
Investigar android.util.Log
. Ele permite que você escreva no log com vários níveis de log e você pode especificar tags diferentes para agrupar a saída. Por exemplo
Log.w("myApp", "no network");
produzirá um aviso com a tag myApp e a mensagem sem rede.
Outras dicas
A tag é usada apenas para encontrar facilmente sua saída, porque a saída de Logcat às vezes pode ser muito longo. Você pode definir em algum lugar da sua classe:
private estático final string tag = "myApp";
e use -o ao depurar
Log.v (tag, "fez algo");
Você pode aplicar também um filtro para pesquisar apenas a tag.
Usar android.util.Log
e os métodos estáticos definidos lá (por exemplo, e()
, w()
).
import android.util.Log;
e depois
Log.i("the your message will go here");
Por favor, veja os logs assim,
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, encontrei essa abordagem para escrever registros no Android, o que eu acho super incrível.
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);
}
}
Você pode usar meu Libary chamado Rdalogger. Aqui está o Github link.
Com esta biblioteca, você pode registrar sua mensagem com o nome/número da classe/número da classe e o link da linha. Com este link, quando você clica em Log, a tela vai para esta linha de código.
Para usar a biblioteca, você deve fazer implementações abaixo.
no nível da raiz gradle
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
no nível de aplicativo gradle
dependencies {
implementation 'com.github.ardakaplan:RDALogger:1.0.0'
}
Para inicializar a biblioteca, você deve começar assim (no aplicativo.class ou antes do primeiro uso)
RDALogger.start("TAG NAME").enableLogging(true);
E do que você pode registrar o que quiser;
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, finalmente, a saída mostra o que quiser (nome da classe, nome do método, link de âncora, mensagem)
08-09 11:13:06.023 20025-20025/com.ardakaplan.application I/Application: IN CLASS : (ENApplication.java:29) /// IN METHOD : onCreate
info