diff --git a/Confidence/src/main/java/com/spotify/confidence/DebugLogger.kt b/Confidence/src/main/java/com/spotify/confidence/DebugLogger.kt index 64d433f..8690aad 100644 --- a/Confidence/src/main/java/com/spotify/confidence/DebugLogger.kt +++ b/Confidence/src/main/java/com/spotify/confidence/DebugLogger.kt @@ -10,6 +10,7 @@ internal interface DebugLogger { fun logFlag(action: String, details: String? = null) fun logContext(action: String, context: Map) fun logResolve(flag: String, context: JsonElement) + fun logError(message: String, throwable: Throwable? = null) companion object { const val TAG = "Confidence" } @@ -51,12 +52,19 @@ internal class DebugLoggerImpl(private val filterLevel: LoggingLevel, private va ) } + override fun logError(message: String, throwable: Throwable?) { + error(message, throwable) + } + private fun verbose(message: String) = log(LoggingLevel.VERBOSE, message) private fun debug(message: String) = log(LoggingLevel.DEBUG, message) private fun warn(message: String, throwable: Throwable?) = log(LoggingLevel.WARN, throwable?.let { "$message: ${throwable.message}" } ?: message) - private fun error(message: String, throwable: Throwable) = log(LoggingLevel.ERROR, "$message: ${throwable.message}") + private fun error(message: String, throwable: Throwable?) = log( + LoggingLevel.ERROR, + throwable?.let { "$message: ${throwable.message}" } ?: message + ) private fun log(messageLevel: LoggingLevel, message: String) { if (messageLevel >= filterLevel) { diff --git a/Confidence/src/main/java/com/spotify/confidence/EventSenderUploader.kt b/Confidence/src/main/java/com/spotify/confidence/EventSenderUploader.kt index 5822905..04c7356 100644 --- a/Confidence/src/main/java/com/spotify/confidence/EventSenderUploader.kt +++ b/Confidence/src/main/java/com/spotify/confidence/EventSenderUploader.kt @@ -67,7 +67,7 @@ internal class EventSenderUploaderImpl( val response = httpClient.newCall(httpRequest).await() if (!response.isSuccessful) { - debugLogger?.logMessage(message = "Failed to upload events. http code ${response.code}", isWarning = true) + debugLogger?.logError(message = "Failed to upload events. http code ${response.code}") } when (response.code) { // clean up in case of success diff --git a/Confidence/src/main/java/com/spotify/confidence/RemoteFlagResolver.kt b/Confidence/src/main/java/com/spotify/confidence/RemoteFlagResolver.kt index bd0e8dd..a4a53f0 100644 --- a/Confidence/src/main/java/com/spotify/confidence/RemoteFlagResolver.kt +++ b/Confidence/src/main/java/com/spotify/confidence/RemoteFlagResolver.kt @@ -73,7 +73,7 @@ internal class RemoteFlagResolver( private fun Response.toResolveFlags(): ResolveResponse { if (!isSuccessful) { - debugLogger?.logMessage("Failed to resolve flags. Http code: $code", isWarning = true) + debugLogger?.logError("Failed to resolve flags. Http code: $code") } body?.let { body -> val bodyString = body.string() diff --git a/Confidence/src/test/java/com/spotify/confidence/DebugLoggerFake.kt b/Confidence/src/test/java/com/spotify/confidence/DebugLoggerFake.kt index 5aab906..eaef3d7 100644 --- a/Confidence/src/test/java/com/spotify/confidence/DebugLoggerFake.kt +++ b/Confidence/src/test/java/com/spotify/confidence/DebugLoggerFake.kt @@ -25,5 +25,9 @@ internal open class DebugLoggerFake : DebugLogger { // not important enough to test right now } + override fun logError(message: String, throwable: Throwable?) { + messagesLogged.add(Msg(message, true, throwable)) + } + data class Msg(val message: String, val isWarning: Boolean, val throwable: Throwable?) } \ No newline at end of file diff --git a/Confidence/src/test/java/com/spotify/confidence/DebugLoggerImplTest.kt b/Confidence/src/test/java/com/spotify/confidence/DebugLoggerImplTest.kt index 12e1a29..8d3e773 100644 --- a/Confidence/src/test/java/com/spotify/confidence/DebugLoggerImplTest.kt +++ b/Confidence/src/test/java/com/spotify/confidence/DebugLoggerImplTest.kt @@ -109,6 +109,9 @@ class DebugLoggerImplTest { errorLogger.logMessage("Error msg", throwable = Error("my error")) verify { Log.e("Confidence", "Error msg: my error") } + + errorLogger.logError("Error msg") + verify { Log.e("Confidence", "Error msg") } } @Test