From 989a0cc1bea686de198a742a7913ea0375c66c29 Mon Sep 17 00:00:00 2001 From: pacien Date: Wed, 14 Mar 2018 17:19:00 +0100 Subject: Implement dual logging for application context --- app/src/main/java/org/pacien/tincapp/context/App.kt | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'app/src/main/java/org/pacien/tincapp/context/App.kt') diff --git a/app/src/main/java/org/pacien/tincapp/context/App.kt b/app/src/main/java/org/pacien/tincapp/context/App.kt index d79ae3e..53049f3 100644 --- a/app/src/main/java/org/pacien/tincapp/context/App.kt +++ b/app/src/main/java/org/pacien/tincapp/context/App.kt @@ -9,15 +9,31 @@ import android.support.annotation.StringRes import android.support.v7.app.AlertDialog import android.view.WindowManager import org.pacien.tincapp.R +import org.slf4j.Logger +import org.slf4j.LoggerFactory /** * @author pacien */ -class App : Application() { +class App : Application(), Thread.UncaughtExceptionHandler { + private var logger: Logger? = null + private var systemCrashHandler: Thread.UncaughtExceptionHandler? = null + override fun onCreate() { super.onCreate() appContext = applicationContext handler = Handler() + + AppLogger.configure() + logger = LoggerFactory.getLogger(this.javaClass) + + systemCrashHandler = Thread.getDefaultUncaughtExceptionHandler() + Thread.setDefaultUncaughtExceptionHandler(this) + } + + override fun uncaughtException(thread: Thread, throwable: Throwable) { + logger?.error("Fatal application error.", throwable) + systemCrashHandler?.uncaughtException(thread, throwable) } companion object { -- cgit v1.2.3