开发一个工程,日志输出是先行者,无论在开发中还是在运行中,都少不了日志的身影。重构过程中,使用了timber作为日志输出,主要考虑到以下几点:
1. 我们在开发中经常用到第三方库,如OkHttp使用Logging Interceptor输出日志,RxJava使用onError输出异常日志,还有Android的系统Log日志,为了捕捉这些日志,timber这个小而美的日志输出就可以排上用场了,
2. 支持debug模式下的日志输出,支持自定义输出方式。
使用timber日志框架,所有的输出日志都经过timber框架输出,框架如下:

timber的思想就是每一种类型的日志为一个树,众多的树构成一个森林。有这种森林中有一颗替众多树操盘的灵魂之树(代理模式),所有的树在输出之时都会经过改灵魂之树代理进行后续操作。日志可在任意线程进行,即使是相同的tag,在不同的线程中,可以有不一样的日志输出。tag由为threadlocal的静态维护。