Timber初始化设置。
Timber.plant(new Timber.DebugTree());
Timber.plant(new Timber.DebugTree() {
@Override
protected void log(int priority, String tag, @NotNull String message, Throwable t) {
// super.log(priority, tag, message, t);
switch (priority) {
case Log.DEBUG:
ILog.d(tag, message);
break;
case Log.INFO:
ILog.i(tag, message);
break;
case Log.WARN:
ILog.w(tag, message);
break;
case Log.ERROR:
ILog.e(tag, message);
break;
case Log.ASSERT:
ILog.a(tag, message);
break;
case Log.VERBOSE:
ILog.v(tag, message);
break;
}
}
});
Logger.addLogAdapter(new AndroidLogAdapter());
Timber.plant(new Timber.DebugTree() {
@Override
protected void log(int priority, String tag, String message, Throwable t) {
Logger.log(priority, tag, message, t);
}
});
可以要设置一般是设置 log(int priority, String tag, @NotNull String message, Throwable t)的方法。里面的super.log(priority, tag, message, t);
是显示控制台打印,如果你加入的log框架里面已经有控制打印可以不用,要不然你每次都会看到两行一模一样的log信息打印出来。Timber.plant
可以加多几个log框架来控制。
Timeber调用方法。
Timber.tag(TAG).d("ddddd");
Timber.tag(TAG).i("iii");
Timber.tag(TAG).v("vvv");
Timber.tag(TAG).e("eeee");
Timber.tag(TAG).w("wwww");
String mac = getMacFromHardware();
Timber.tag(TAG).i("mac: " + mac);
Timber.i("mac: " + mac);
Timeber打印log大致有两种方式。一种是像Timber.tag(TAG).i("iii");
这样的,另外一种是不加tag的Timber.i("mac: " + mac);
这种tag是自动获取的,下面会讲到getStackTrace的方式获取。
下面来看Timber.i
会调用到什么东西。
public static void d(Throwable t, @NonNls String message, Object... args) {
TREE_OF_SOULS.d