Відповіді:
Загляньте android.util.Log
. Це дозволяє записувати в журнал з різними рівнями журналу, і ви можете вказати різні теги для групування результатів. Наприклад
Log.w("myApp", "no network");
виведе попередження з тегом myApp і повідомленням немає мережі.
w
у Log.w(...)
стендах для попередження. Існує більше версій: d
- налагодження, e
- помилка, i
- інформація, v
- багатослівна, wtf
- яка жахлива помилка . ;-)
Тег просто використовується для того, щоб легко знайти свій вихід, тому що вихід LogCat може бути дуже довгим. Ви можете визначити десь у своєму класі:
приватний статичний кінцевий рядок TAG = "myApp";
і використовувати його під час налагодження
Log.v (TAG, "щось зробив");
Ви також можете застосувати фільтр лише для пошуку тегу.
Використання android.util.Log
і статичні методи , визначені там (наприклад, e()
, w()
).
Будь ласка, дивіться журнали таким чином,
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)
Ви можете використовувати мою бібліотеку під назвою RDALogger. Ось посилання github .
За допомогою цієї бібліотеки ви можете записати своє повідомлення за допомогою імені методу / імені класу / номера рядка та прив’язного посилання. За допомогою цього посилання при натисканні журналу екран переходить до цього рядка коду.
Щоб користуватися бібліотекою, потрібно виконати наведені нижче дії.
в рівні кореня
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
у рівні програми
dependencies {
implementation 'com.github.ardakaplan:RDALogger:1.0.0'
}
Для ініціалізації бібліотеки вам слід почати так (в Application.class або перед першим використанням)
RDALogger.start("TAG NAME").enableLogging(true);
І ніж ви можете ввійти все, що завгодно;
RDALogger.info("info");
RDALogger.debug("debug");
RDALogger.verbose("verbose");
RDALogger.warn("warn");
RDALogger.error("error");
RDALogger.error(new Throwable());
RDALogger.error("error", new Throwable());
І, нарешті, результат показує все, що ви хочете (назва класу, назва методу, прив’язка, повідомлення)
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,"");
Нещодавно я знайшов такий підхід до написання журналів в андроїд, який, на мою думку, є надзвичайно чудовим.
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
?