Respostas:
Olhe para dentro android.util.Log
. Ele permite gravar 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");
emitirá um aviso com a tag myApp e a mensagem sem rede.
w
em Log.w(...)
significa aviso. Existem mais versões: d
- debug, e
- error, i
- info, v
- verbose, wtf
- What a Terrible Failure. ;-)
O Tag é usado apenas para encontrar facilmente sua saída, porque a Saída do LogCat pode às vezes ser muito longa. Você pode definir em algum lugar da sua classe:
final estático privado String TAG = "myApp";
e use-o ao depurar
Log.v (TAG, "fez alguma coisa");
Você também pode aplicar um filtro para pesquisar apenas a tag.
Use 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 desta maneira,
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)
Você pode usar minha biblioteca chamada RDALogger. Aqui está o link do github .
Com esta biblioteca, você pode registrar sua mensagem com o nome do método / nome da classe / número da linha e o link da âncora. Com esse link, quando você clica em log, a tela passa para esta linha de código.
Para usar a biblioteca, você deve executar as implementações abaixo.
no nível da raiz
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
no nível do aplicativo
dependencies {
implementation 'com.github.ardakaplan:RDALogger:1.0.0'
}
Para inicializar a biblioteca, você deve começar assim (em Application.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 tudo o que você deseja (nome da classe, nome do método, link da âncora, mensagem)
08-09 11:13:06.023 20025-20025/com.ardakaplan.application I/Application: IN CLASS : (ENApplication.java:29) /// IN METHOD : onCreate
info
String one = object.getdata();
Log.d(one,"");
Recentemente, eu encontrei essa abordagem para escrever logs 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);
}
}
log.d
?