Стратегия ведения журнала - PullRequest
5 голосов
/ 02 декабря 2010

Я собираюсь закончить приложение для Android. В конце концов я обнаружил, что я использовал кучу операторов записи, например:

Log.d(TAG, "Blah-blah");

Вопрос: для выпуска продукта, что мне делать с ними?

  1. Просто комментируйте / просматривайте лог-операторы
  2. Есть что-то еще более изощренное? Как я делал со свойствами Log4J или около того

Пожалуйста, поделитесь своим опытом.

Ответы [ 7 ]

4 голосов
/ 02 декабря 2010

Вы можете удалить операторы регистрации во время сборки, используя инструмент запутывания.Подробнее см. здесь .

1 голос
/ 18 ноября 2016

Я создал библиотеку для этой конкретной цели.Его можно найти здесь - LumberJack .Вы можете установить его, используя Jitpack и Gradle (пожалуйста, отметьте README.md).

После установки вам придется изменить все вызовы журнала на вызовы LumberJack (например, LumberJack.d() вместо Log.d() и т. Д.)

Теги являются необязательными и по умолчанию установлены на "дровосек».Вы можете установить тег по умолчанию самостоятельно.

Вы можете изменить фильтрацию в любое время, используя метод LumberJack.setLogLevel().Чтобы удалить все журналы, вы можете просто установить LogLevel на LogLevel.None.

LumberJack.setLogLevel(LogLevel.None);

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

При желании вы можете войти в текстовый файл вместо logcat с тем же механизмом фильтрации.

1 голос
/ 24 декабря 2011

Существует новый проект, который включает log4j на Android. Использование lo4gj поверх slf4j возможно. Он также предоставляет приложение для LogCat. Смотрите проект android-logging-log4j или log4j в поддержке android

0 голосов
/ 10 ноября 2017

Если вы не хотите регистрировать что-либо в версии для Android, вы можете использовать автоматически сгенерированный BuildConfig. Подробнее об этом здесь: https://developer.android.com/studio/build/gradle-tips.html. Вы также можете прочитать дополнительную информацию в этом вопросе: Файл BuildConfig в Android - Цель и возможности .

Итак, в своем коде вы просто пишете что-то вроде этого:

if (BuildConfig.DEBUG) {
    //your code just for development goes here
}
0 голосов
/ 02 декабря 2010

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

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

if (Log.isDebugEnabled()) {
   Log.Debug(bigCollection.toString());
}
0 голосов
/ 02 декабря 2010

Я делаю это так, заставляя компилятор удалить все журналы, если DEBUG имеет значение false:

if (Constant.DEBUG) Log.d(TAG, "mein gott, state is roflcopter");
0 голосов
/ 02 декабря 2010

Зависит. Если вы ожидаете, что приложение часто будет аварийно завершать работу, включите, например, одну из библиотек отчетов о сбоях, но что бы вы ни решили сделать, просто не выпускайте ее с помощью методов Log.d().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...