是否可以在运行时选择特定的木材树?

时间:2018-01-24 13:50:13

标签: android timber-android

假设我希望我的逻辑的每个部分都有一个带有不同记录器的应用程序,即用于公共消息的ConsoleLogger和用于远程通信的HttpLogger。

我已经看到Timber允许您创建从Timber.Tree扩展的不同记录器。然后,通过修改您自己的Application的子类的onCreate方法,可以决定使用哪个记录器依赖于Android变体(DEBUG vs RELEASE)。此外,可以通过播放日志记录级别(d,i,w等)来配置Timber使用一个记录器或另一个记录器。

现在,我的问题是,是否有可能告诉Timber运行时使用哪个Tree? 如果有帮助,我会尝试做类似于logback-android对slf4j的处理方式:

org.slf4j.Logger log = LoggerFactory.getLogger(MainActivity.class);

2 个答案:

答案 0 :(得分:1)

您可以同时运行任意数量的记录器。因此,不同的实现可以在d, i, v日志中执行不同的操作。如果您确实需要在运行时停止运行一个记录器,则可以使用uproot(Tree tree)uprootAll()方法删除记录树。如果你还没有添加新的,你可以使用plant(Tree... trees)

答案 1 :(得分:0)

签出Timber.forest(),这将返回所有已种植树木的集合。