2016-07-13 12 views
5

DebugTreeがログに記録されると、クラス名が表示されますが、カスタムツリーを作成すると、タグはnullになります。ここに私のカスタムツリーがどのように見える:それは私がの名前を取得することができる方法があった場合しかし、私は思っていたBaseActivityから来ないためにも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); 
    } 
} 
} 

BaseActivityですジェイク・ウォートンによるとBaseActivity

答えて

4

を拡張するクラス:ログサイトでtag(String)を呼び出すか、あなたがSHOUた(DebugTreeから延長しない限り、

tagはnullですプロダクションロギングではありません)。あなたが各呼び出しの前Timber.tag([class name])を追加する必要があるため

github.com/JakeWharton/timber/issues/122

関連する問題