2016-07-13 41 views
5

DebugTree记录时,我看到类名称,但是当我创建自定义树时,标记为null。这里就是我的自定义树是这个样子:使用木材时标记为空

public class CrashlyticsTree extends Timber.Tree { 
private static final String CRASHLYTICS_KEY_PRIORITY = "priority"; 
private static final String CRASHLYTICS_KEY_TAG = "tag"; 
private static final String CRASHLYTICS_KEY_MESSAGE = "message"; 

@Override 
protected boolean isLoggable(int priority) { 
    if (priority == Log.VERBOSE || priority == Log.DEBUG || priority == Log.INFO) { 
     return false; 
    } 

    // only log WARN(Timber.w), ERROR(Timber.e), or WTF(Timber.wtf) 
    return true; 
} 

@Override 
protected void log(int priority, @Nullable String tag, @Nullable String message, @Nullable Throwable t) { 
    if(User.CurrentUser.isLoggedIn()){ 
     Crashlytics.setUserIdentifier(Long.toString(User.CurrentUser.getUserId())); 
    } 

    Crashlytics.setInt(CRASHLYTICS_KEY_PRIORITY, priority); 
    Crashlytics.setString(CRASHLYTICS_KEY_TAG, tag); 
    Crashlytics.setString(CRASHLYTICS_KEY_MESSAGE, message); 

    if (t == null) { 
     Crashlytics.logException(new Exception(message)); 
    } else { 
     if(!TextUtils.isEmpty(message)){ 
      Crashlytics.log(priority, tag, message); 
     } 
     Crashlytics.logException(t); 
    } 
} 
} 

然而,即使从DebugTree,获取生成的标签是BaseActivity,因为它确实来自BaseActivity但我不知道是否有一种方法可以让我得到的名称扩展BaseActivity

回答

4

类根据杰克沃顿:

tag除非你打电话tag(String)在日志站点或从DebugTree延长(你守为空没有做生产测井)。

因此,您需要在每次调用之前添加Timber.tag([class name])

请参阅github.com/JakeWharton/timber/issues/122