From 873e92541fb91dcba19e1f33f66df3017eeca4d2 Mon Sep 17 00:00:00 2001 From: Lukas Niemeier Date: Mon, 29 Jul 2013 18:29:51 +0200 Subject: [PATCH] added better exception logging --- .../racecommittee/app/logging/ExLog.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/logging/ExLog.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/logging/ExLog.java index cb0712e84e2..c66d23fae58 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/logging/ExLog.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/logging/ExLog.java @@ -1,5 +1,7 @@ package com.sap.sailing.racecommittee.app.logging; +import java.io.PrintWriter; +import java.io.StringWriter; import java.util.Date; import java.util.EnumSet; import java.util.concurrent.ArrayBlockingQueue; @@ -127,6 +129,10 @@ public class ExLog { public synchronized static void e(String tag, String msg) { getInstance().error(tag, msg); } + + public synchronized static void ex(String tag, Exception e) { + getInstance().exception(tag, e); + } private final static String logMsgTemplate = "%s - %s - %s : %s"; @@ -179,6 +185,19 @@ public class ExLog { if (isTargetActive(Target.FILE)) logToFile(LogLevel.ERROR, tag, msg); } + + private void exception(String tag, Exception e) { + StringWriter stringWriter = new StringWriter(); + PrintWriter stream = new PrintWriter(stringWriter); + e.printStackTrace(stream); + String msg = stringWriter.toString(); + + if (isTargetActive(Target.LOGCAT)) + Log.e(tag, msg); + + if (isTargetActive(Target.FILE)) + logToFile(LogLevel.ERROR, tag, msg); + } private boolean isTargetActive(Target logcat) { return activeLoggingTargets.contains(logcat);