Odpowiedzi:
Zajrzyj do android.util.Log
. Umożliwia zapisywanie w dzienniku z różnymi poziomami dziennika i pozwala określić różne znaczniki w celu pogrupowania wyników. Na przykład
Log.w("myApp", "no network");
wyświetli ostrzeżenie z tagiem mojaAplikacja i komunikatem brak sieci.
w
w Log.w(...)
oznacza ostrzeżenie. Jest więcej wersji: d
- debug, e
- error, i
- info, v
- verbose, wtf
- What a Terrible Failure. ;-)
Tag służy po prostu do łatwego wyszukiwania wyników, ponieważ dane wyjściowe LogCat mogą być czasami bardzo długie. Możesz zdefiniować gdzieś w swojej klasie:
prywatny statyczny końcowy String TAG = "myApp";
i używaj go podczas debugowania
Log.v (TAG, „coś zrobił”);
Możesz również zastosować filtr, aby wyszukać tylko tag.
Użyj android.util.Log
i zdefiniowanych tam metod statycznych (np. e()
, w()
).
import android.util.Log;
i wtedy
Log.i("the your message will go here");
Zobacz dzienniki w ten sposób,
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)
Możesz skorzystać z mojej biblioteki o nazwie RDALogger. Tutaj jest link do github .
Dzięki tej bibliotece możesz rejestrować wiadomości z nazwą metody / nazwą klasy / numerem linii i linkiem do zakotwiczenia. Za pomocą tego linku, po kliknięciu log, ekran przechodzi do tej linii kodu.
Aby korzystać z biblioteki, musisz wykonać poniższe implementacje.
w gradle na poziomie głównym
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
na poziomie aplikacji
dependencies {
implementation 'com.github.ardakaplan:RDALogger:1.0.0'
}
Aby zainicjować bibliotekę, powinieneś zacząć w ten sposób (w Application.class lub przed pierwszym użyciem)
RDALogger.start("TAG NAME").enableLogging(true);
I niż możesz rejestrować, co chcesz;
RDALogger.info("info");
RDALogger.debug("debug");
RDALogger.verbose("verbose");
RDALogger.warn("warn");
RDALogger.error("error");
RDALogger.error(new Throwable());
RDALogger.error("error", new Throwable());
Na koniec dane wyjściowe pokazują wszystko, czego chcesz (nazwa klasy, nazwa metody, link do zakotwiczenia, wiadomość)
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,"");
Niedawno odkryłem takie podejście do pisania logów na Androidzie, które uważam za super niesamowite.
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
?