Skip to content

Commit

Permalink
Add Crashlytics Timber.Tree
Browse files Browse the repository at this point in the history
This commit logs non-fatal errors and warnings to Crashlytics in
production.
  • Loading branch information
macklinu committed May 19, 2016
1 parent f472342 commit cf0167a
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 0 deletions.
2 changes: 2 additions & 0 deletions app/src/main/java/org/selfconference/android/App.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import dagger.ObjectGraph;
import io.fabric.sdk.android.Fabric;
import org.selfconference.android.data.Injector;
import org.selfconference.android.util.CrashlyticsTree;
import timber.log.Timber;
import timber.log.Timber.DebugTree;

Expand Down Expand Up @@ -55,6 +56,7 @@ protected void installLeakCanary() {
protected void setupFabric() {
if (!BuildConfig.DEBUG) {
Fabric.with(this, new Crashlytics());
Timber.plant(new CrashlyticsTree());
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package org.selfconference.android.util;

import android.util.Log;
import com.crashlytics.android.Crashlytics;
import com.crashlytics.android.core.CrashlyticsCore;
import timber.log.Timber;

public final class CrashlyticsTree extends Timber.Tree {
@Override protected void log(int priority, String tag, String message, Throwable t) {
CrashlyticsCore crashlyticsCore = Crashlytics.getInstance().core;

crashlyticsCore.log(priority, tag, message);

if (t == null) {
return;
}
if (priority == Log.ERROR) {
crashlyticsCore.logException(t);
} else {
crashlyticsCore.log(priority, tag, Log.getStackTraceString(t));
}
}

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

0 comments on commit cf0167a

Please sign in to comment.