Как отключить некоторые функции Log при создании приложения для Android?

Я использую функции Log для отладки моего приложения для Android. Я близок к выпуску своего приложения, и я бы хотел уменьшить уровень отладки. Однако я не знаю, как отключить некоторые из этих функций. Скажем, я просто хочу отключить журналы Log.v ().

В Android-документе говорится, что нужно удалить вызовы функций журнала в коде или удалить / установить в false параметр android :: debbugable. Первый вариант не соответствует моим потребностям, так как я хотел бы использовать логические вызовы в моем исходном коде (для будущих обновлений). Второй вариант отключает все журналы, что не подходит для тестирования перед выпуском.

Вы знаете, как отключить только подробные (Log.v) журналы?

Большое спасибо!

Вы можете создать свою собственную оболочку для Log class, возможно, что-то вроде этого:

 static class MyLog{ private static int mLevel; public final static void setLevel(int level){ mLevel = level; } public final static void v(String tag, String message){ if( mLevel > 0 ) return; Log.v(tag, message); } public final static void d(String tag, String message){ if( mLevel > 1 ) return; Log.d(tag, message); } public final static void i(String tag, String message){ if( mLevel > 2 ) return; Log.d(tag, message); } //Same for w and e if neccessary.. } 

Затем вы можете использовать MyLog.setLevel(1); Для отключения любого подробного ведения журнала (или более высокого уровня, чтобы отключить эти журналы).

Если вы собираетесь запутать свой выпуск с помощью Proguard, тогда положить строки, такие как

 -assumenosideeffects class android.util.Log { public static *** d(...); public static *** v(...); } 

В конфигурационный файл удаляются те категории ведения журнала из вашего кода.