report first stack frame element to GA in case of unexpected exceptions

This commit is contained in:
Anton Keks 2016-01-12 22:56:13 +02:00
parent 3215e7f0f8
commit 80da90fad8
2 changed files with 21 additions and 1 deletions

View File

@ -48,7 +48,13 @@ public class GoogleAnalytics {
}
public void report(Throwable e) {
report("exception", e.toString());
report("exception", extractFirstStackFrame(e));
}
static String extractFirstStackFrame(Throwable e) {
StackTraceElement[] stackTrace = e.getStackTrace();
return e.toString() + (stackTrace.length == 0 ? "" : "\n" +
stackTrace[0].getClassName() + "." + stackTrace[0].getMethodName() + ":" + stackTrace[0].getLineNumber());
}
public void asyncReport(final String screen) {

View File

@ -0,0 +1,14 @@
package net.azib.ipscan.util;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class GoogleAnalyticsTest {
@Test
public void extractFirstStackFrame() throws Exception {
assertEquals("java.lang.RuntimeException: Kaboom\n" +
"net.azib.ipscan.util.GoogleAnalyticsTest.extractFirstStackFrame:10",
GoogleAnalytics.extractFirstStackFrame(new RuntimeException("Kaboom")));
}
}