如何告诉Timber哪个日志调用是针对哪个树的?

JK

我有一个Timber库,用于进行日志记录并与崩溃报告服务进行协作,并且我的应用程序中同时包含了Crashlytics和Loggly服务。

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

Timber.plant(new CrashlyticsTree());
Timber.plant(new LogglyTree(BuildConfig.LOGGLY_TOKEN));

现在,每次我打电话:

Timber.e("bla bla");

我在Loggly中获得了所有日志,但是我希望其中一些日志进入Loggly,另一些日志进入Crashlytics,那么我该怎么做?

JK

原来每次调用.e.w例如,通过遍历所有种植的树木,并呼吁它们各自.e.w实现。

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

所以我选择.e用于图书馆A和.w图书馆B。

为了做到这一点,我必须创建自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

如果我想使用库B的日志记录实用程序,请执行以下操作:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章