Вход только в указанную c Древесина дерева - PullRequest
0 голосов
/ 17 января 2020

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

У меня также есть библиотечный модуль, который будет использоваться в этом проекте. В модуле библиотеки я добавляю Timber в качестве зависимости gradle так же, как и мой :app проект. Я хочу иметь возможность установить флаг на модуле библиотеки, чтобы включить / отключить его ведение журнала, чтобы я мог отделить журналы библиотеки от основного :app проекта. Что-то вроде:

LibraryModule().setDeveloperMode(true)

На данный момент все мои журналы печатаются. Если я сажаю новое дерево в библиотеку, это будет печатать журналы два раза для всех библиотечных журналов.

Я также посмотрел на этот ответ: Как сообщить Timber, какой вызов журнала для какого дерева? Но это не то, что я хочу, я не хочу резервировать приоритет ведения журнала для библиотечного модуля.

I wi sh Я мог бы сделать что-то подобное, но если дерево не посаженный, он ничего не напечатает. правильно? Но, если я его установлю, журналы будут повторяться из-за нескольких деревьев.

val libraryTree: Timber.Tree = Timber.DebugTree()
libraryTree.d("library-logs")

Как включить / отключить журналы Timber для моей библиотеки?

1 Ответ

0 голосов
/ 05 мая 2020

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

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

Если вы хотите обработать это внутри библиотеки, вы можете сделать:

class CustomLogTree(val printLogs: Boolean) : Timber.DebugTree() {

override fun log(priority: Int, tag: String?, message: String, t: Throwable?) {
    if (!printLogs) {
        return
    }
    super.log(priority, tag, message, t)
}

И предоставить функцию для изменения флага "printLogs" для потребителей библиотеки.

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