Як записати виходи в систему "Увійти в систему"?


153

Я хочу написати деякий налагоджувальний вихід у журнал, щоб переглянути його з logcat.

Якщо я щось напишу в System.out, це вже відображається в logcat.

Який чистий спосіб записати в журнал і додати рівні та теги до мого результату?

Відповіді:


211

Загляньте android.util.Log. Це дозволяє записувати в журнал з різними рівнями журналу, і ви можете вказати різні теги для групування результатів. Наприклад

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

виведе попередження з тегом myApp і повідомленням немає мережі.


що було б різним за допомогою використання log.d?
JMASTER B

5
wу Log.w(...)стендах для попередження. Існує більше версій: d- налагодження, e- помилка, i- інформація, v- багатослівна, wtf- яка жахлива помилка . ;-)
patryk.beza

20

Тег просто використовується для того, щоб легко знайти свій вихід, тому що вихід LogCat може бути дуже довгим. Ви можете визначити десь у своєму класі:

приватний статичний кінцевий рядок TAG = "myApp";

і використовувати його під час налагодження

Log.v (TAG, "щось зробив");

введіть тут опис зображення

Ви також можете застосувати фільтр лише для пошуку тегу.


17

Використання android.util.Logі статичні методи , визначені там (наприклад, e(), w()).



5

Будь ласка, дивіться журнали таким чином,

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)

1

Ви можете використовувати мою бібліотеку під назвою 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


0

Нещодавно я знайшов такий підхід до написання журналів в андроїд, який, на мою думку, є надзвичайно чудовим.

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);
        }
    }
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.