Как я могу контролировать android.util.log или переопределить его?

1

Я использую log.d/v/w/e везде в проекте.

Теперь я хочу сохранить все журналы в локальном файле устройства.

Тем не менее, класс android.util.Log в последнем классе.

Это значит, что я не могу от этого отказаться.

Есть ли способ взять контроль над android.util.Log, чтобы мне не нужно было менять log.d/v/w/e везде в проекте?

Я ищу простой способ узнать, вызывается ли log.d/v/w/e, и чтобы я мог записать информацию в локальный файл.

Теги:
logcat
android-log

1 ответ

0

Когда вам нужно добавить к функциональности конечного класса, распространенным вариантом является использование шаблона декоратора (оболочки):

public class LogUtils {

  public static void LOGE(String tag, String message) {
     Log.e(tag, message);
     doSomethingElse();
  }

  ...
}

Такая реализация для ведения журнала довольно популярна.

Тем не менее, есть еще один вариант написания вашей собственной оболочки. Библиотека Jake Wharton Timber уже обрабатывает все утилиты и добавляет некоторые другие тонкости, такие как автоматические теги и использование String.format для Java.

Вы можете добавить свои собственные функции для обработки своей собственной диагностической логики, например, так:

public class MyLoggingClass extends DebugTree {

  @Override
  public void log(int priority, String tag, String message, Throwable t) {

    if (BuildConfig.DEBUG) {
       super.log(priority, tag, message, t);
    }

    doSomethingElse();

  }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню