2010-12-02 6 views
5

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

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

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

  1. Всего заявлений журнала комментариев/полоса
  2. что-то еще более сложное? Как и раньше, я использовал свойства Log4J или так

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

ответ

0

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

if (Constant.DEBUG) Log.d(TAG, "mein gott, state is roflcopter"); 
+1

Этот метод на самом деле не прав, и это не лучшая практика, если вы спросите меня, как он раздувает ваш код. – 2010-12-02 09:06:34

4

Вы можете удалить ведомости ведения журнала во время сборки с помощью инструмента обфускации. См. here.

+0

ОК, я буду исследовать вариант. В любом случае, есть ли какие-либо возможности, например, свойства в Log4J? – barmaley 2010-12-02 13:52:38

+0

Из того, что я знаю, все сообщения регистрируются. Затем зритель журнала может выбрать, какие сообщения появляться. Вы не можете отключить отладочные сообщения для входа в журнал, просто изменив свойство. – kgiannakakis 2010-12-02 14:15:50

0

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

0

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

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

1

Существует новый проект, который позволяет log4j на android. Возможно использование lo4gj над slf4j. Он также предоставляет приложение для LogCat. См. Проект android-logging-log4j или log4j support in android

1

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

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

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

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

LumberJack.setLogLevel(LogLevel.None); 

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

При необходимости вы можете войти в текстовый файл вместо logcat с тем же фильтрующим механизмом.

0

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

Так что в вашем коде вы просто написать что-то вроде этого:

if (BuildConfig.DEBUG) { 
    //your code just for development goes here 
} 
Смежные вопросы