Режим отладки в библиотеке

#java #android

#java #Android

Вопрос:

У меня есть приложение для Android с несколькими вызовами «Log.d» в коде, чтобы следить за событиями приложения. Чтобы включить или отключить отладочные сообщения, я вызываю журнал с

  if (MyApp.debug) Log.d("Doing something");
  

Где MyApp.debug — это окончательное логическое значение, которое я изменяю перед компиляцией.

Теперь я хочу использовать некоторые классы из приложения в качестве библиотеки для другого приложения, поэтому я скопировал их в новый проект библиотеки. Проблема в том, что теперь в библиотеке у меня нет класса MyApp.

Как я могу сделать что-то подобное для управления из приложения, если библиотека должна печатать сообщения отладки или нет?

Заранее спасибо

Ответ №1:

Я бы предложил поместить переменную внутри вызываемого статического класса Log , который вы могли бы затем во время выполнения проверить статическую логическую переменную, чтобы выяснить, должна ли она регистрироваться или нет.

Таким образом, у вас все еще есть удобство, но все это содержится внутри регистратора.

Например:

 public class Log {

  public static boolean mustLog = false;

  // methods etc.
}
  

Затем в вашем приложении просто используйте if(Log.mustLog) ...

Надеюсь, это поможет.

Ответ №2:

Вы можете создать другой пользовательский класс в своей библиотеке

 public Class LogPrefs
{
  public static final boolean enabled = true;
}
  

и включайте и выключайте его по мере необходимости. Тогда просто

 if (LogPrefs.enabled) Log.d("Doing something");
  

Я всегда удаляю сообщения отладки по ходу работы, поскольку они имеют тенденцию загромождать экран. Однако я сохраняю информацию и сообщения об ошибках; в конечном итоге они могут быть восстановлены и отправлены обратно после сбоя.