Запретить разоблачение логов Timber внутри модуля Android
Я искал более динамичный подход к ведению журнала в моем модуле Android и был очень рад найти Timber. Я реализовал это в одном классе, и это, кажется, идеальный инструмент для работы. Тем не менее, моя главная проблема заключается в том, что, поскольку Timber является одноэлементным, разработчик, использующий мою библиотеку, мог случайно включить мои внутренние журналы, установив дерево отладки в собственном приложении.
Я нашел эту веб-страницу, посвященную проблеме: Использование Timber в проекте библиотеки. Кто-то дал два решения:
Оберегайте каждую библиотеку, используя древесину с условием
if (LibraryBuildConfig.DEBUG) Timber.v(msg);
Теневая зависимость
Первый вариант нейтрализует одну из наиболее важных функций библиотеки (возможность переключать журналы в производственных сборках без миллиона операторов или комментариев "если"), а второй кажется хаком, который может вызвать проблемы в будущем.
Есть ли лучшее решение этой проблемы? Древесина является ценным инструментом с множеством преимуществ. Если у кого-то есть более чистый подход, чем два вышеупомянутых предложения, я был бы признателен.