Android 如何告诉木材哪个原木叫哪棵树?

Android 如何告诉木材哪个原木叫哪棵树?,android,timber-android,Android,Timber Android,我有用于日志记录和与崩溃报告服务合作的木材库,我的应用程序中有Crashlytics和Loggly服务 因此,我不得不种两棵树: Timber.plant(new CrashlyticsTree()); Timber.plant(new LogglyTree(BuildConfig.LOGGLY_TOKEN)); 现在,每次我打电话: Timber.e("bla bla"); 我在Loggly中获取所有日志,但我希望其中一些日志转到Loggly,另一些日志转到Crashlytics,那么我该

我有用于日志记录和与崩溃报告服务合作的木材库,我的应用程序中有Crashlytics和Loggly服务

因此,我不得不种两棵树:

Timber.plant(new CrashlyticsTree());
Timber.plant(new LogglyTree(BuildConfig.LOGGLY_TOKEN));
现在,每次我打电话:

Timber.e("bla bla");

我在Loggly中获取所有日志,但我希望其中一些日志转到Loggly,另一些日志转到Crashlytics,那么我该怎么做呢?

显示对
.e
.w的每个调用,例如,迭代所有种植的树,并调用它们各自的
.e
.w
实现

这意味着,如果我想分离库A和库B,我需要为每个库使用不同的日志优先级

因此,我选择对库A使用
.e
,对库B使用
.w

为了做到这一点,我必须创建从Timber.HollowTree继承的自定义树,并且只实现所需的日志调用,其余的树都是空的

public class LibraryATree extends Timber.HollowTree {
    @Override
    public void e(Args){
        // Do something
    }
}

public class LibraryBTree extends Timber.HollowTree {
    @Override
    public void w(Args){
        // Do something
    }
}

Timber.plant(new LibraryATree())
Timber.plant(new LibraryBTree())
现在在我的代码中,如果我想通过LibraryA记录一些东西,我会这样做:

Timber.e("Test Library A"); // calls LibraryA's Tree's `.e` method
Timber.w("Test Library B"); // calls LibraryB's Tree's `.w` method
如果我想使用库B的日志实用程序,我会这样做:

Timber.e("Test Library A"); // calls LibraryA's Tree's `.e` method
Timber.w("Test Library B"); // calls LibraryB's Tree's `.w` method