Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@davidwong
Created March 21, 2019 08:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davidwong/e08c4cf47fb5e46c56d6dc84cda0a6d3 to your computer and use it in GitHub Desktop.
Save davidwong/e08c4cf47fb5e46c56d6dc84cda0a6d3 to your computer and use it in GitHub Desktop.
Example code for blog post: Crashlytics and Android: Clean Way to Use Custom Crash Reports?
import com.crashlytics.android.Crashlytics;
public class ErrorLogger extends LoggerWrapper {
public ErrorLogger(Class clazz) {
super(clazz);
}
public ErrorLogger(String className) {
super(className);
}
// additional methods for error reporting
@Override
public void error(ErrorReport errorReport)
{
// send non-fatal error to crash reporting
errorReport.getId().ifPresent(id -> Crashlytics.setUserIdentifier(id));
errorReport.getStateString().entrySet().stream().forEach(entry -> Crashlytics.setString(entry.getKey(), entry.getValue()));
errorReport.getStateBool().entrySet().stream().forEach(entry -> Crashlytics.setBool(entry.getKey(), entry.getValue()));
errorReport.getStateInt().entrySet().stream().forEach(entry -> Crashlytics.setInt(entry.getKey(), entry.getValue()));
errorReport.getStateDouble().entrySet().stream().forEach(entry -> Crashlytics.setDouble(entry.getKey(), entry.getValue()));
errorReport.getStateFloat().entrySet().stream().forEach(entry -> Crashlytics.setFloat(entry.getKey(), entry.getValue()));
errorReport.getMessages().stream().forEach(m -> Crashlytics.log(m));
errorReport.getException().ifPresent(ex -> Crashlytics.logException(ex));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment