Вопрос

Я хочу записать в журнал некоторые отладочные данные, чтобы просмотреть их с помощью logcat.

Если я что-то пишу в System.out, это уже отображается в logcat.

Каков простой способ записи в журнал и добавления уровней и тегов к моим выводам?

Это было полезно?

Решение

Посмотрите android.util.Log.Он позволяет записывать в журнал различные уровни журнала, а также указывать разные теги для группировки выходных данных.Например

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

выведет предупреждение с тегом myApp и сообщением «Нет сети».

Другие советы

Тег используется просто для того, чтобы легко найти результат, потому что результат ЛогКэт иногда может быть очень длинным.Вы можете определить где-нибудь в своем классе:

частная статическая окончательная строка TAG = "myApp";

и использовать его при отладке

Log.v(TAG, «сделал что-то»);

enter image description here

Вы также можете применить фильтр для поиска только по тегу.

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

import android.util.Log;

а потом

Log.i("the your message will go here"); 

Пожалуйста, просмотрите журналы следующим образом:

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,"");

Недавно я нашел такой подход к написанию логов в Android, который мне кажется очень крутым.

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);
        }
    }

Вы можете использовать мою библиотеку под названием RDALogger.Вот гитхаб связь.

С помощью этой библиотеки вы можете зарегистрировать свое сообщение, указав имя метода/имя класса/номер строки и ссылку привязки.По этой ссылке, когда вы нажимаете «Журнал», экран переходит к этой строке кода.

Чтобы использовать библиотеку, вы должны выполнить приведенные ниже реализации.

в корневом уровне Gradle

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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top