From e29025a4c955aa5d4af42c4d6f1c0d41afa816c9 Mon Sep 17 00:00:00 2001 From: perqin Date: Sat, 9 May 2020 20:05:47 +0800 Subject: [PATCH 1/2] Add test case to demonstrate the issue --- plog-formatter/build.gradle | 4 ++++ .../plog/formatter/DefaultFormatterTest.java | 21 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 plog-formatter/src/androidTest/java/org/mym/plog/formatter/DefaultFormatterTest.java diff --git a/plog-formatter/build.gradle b/plog-formatter/build.gradle index a5617b9..223099b 100644 --- a/plog-formatter/build.gradle +++ b/plog-formatter/build.gradle @@ -8,6 +8,7 @@ android { defaultConfig { minSdkVersion rootProject.ext.MIN_SDK_VERSION as int targetSdkVersion rootProject.ext.TARGET_SDK_VERSION as int + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } packagingOptions { @@ -25,6 +26,9 @@ dependencies { //For develop only provided project(':plog') provided "com.android.support:support-annotations:${rootProject.ext.SUPPORT_VERSION as String}" + androidTestImplementation project(':plog') + androidTestImplementation 'com.android.support.test:runner:1.0.2' + androidTestImplementation 'com.android.support.test:rules:1.0.2' } publish { diff --git a/plog-formatter/src/androidTest/java/org/mym/plog/formatter/DefaultFormatterTest.java b/plog-formatter/src/androidTest/java/org/mym/plog/formatter/DefaultFormatterTest.java new file mode 100644 index 0000000..b75a638 --- /dev/null +++ b/plog-formatter/src/androidTest/java/org/mym/plog/formatter/DefaultFormatterTest.java @@ -0,0 +1,21 @@ +package org.mym.plog.formatter; + +import android.support.test.runner.AndroidJUnit4; +import android.util.Log; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mym.plog.Formatter; + +import static org.junit.Assert.assertEquals; + +@RunWith(AndroidJUnit4.class) +public class DefaultFormatterTest { + @Test + public void testFormatThrowableParams() throws Exception { + Formatter formatter = new DefaultFormatter(); + Throwable throwable = new Throwable("Test"); + String formatted = formatter.format("Throwable is %s", throwable); + assertEquals("Throwable is " + Log.getStackTraceString(throwable), formatted); + } +} From 6c694124e3c549c9e7265fcd7eabf019ed788f64 Mon Sep 17 00:00:00 2001 From: perqin Date: Sat, 9 May 2020 20:08:16 +0800 Subject: [PATCH 2/2] Fix message printed twice when a throwable is given --- .../src/main/java/org/mym/plog/formatter/DefaultFormatter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plog-formatter/src/main/java/org/mym/plog/formatter/DefaultFormatter.java b/plog-formatter/src/main/java/org/mym/plog/formatter/DefaultFormatter.java index 5ebb1f1..5e669ba 100644 --- a/plog-formatter/src/main/java/org/mym/plog/formatter/DefaultFormatter.java +++ b/plog-formatter/src/main/java/org/mym/plog/formatter/DefaultFormatter.java @@ -119,7 +119,7 @@ public String format(String msg, Object... params) throws Exception { boolean formatted = false; for (FormatterImpl impl : mFormatterImpls) { if (isFormatterAvailable(impl.typeFlag, param, impl.supportedClass)){ - formattedParam[i] = impl.formatter.format(msg, param); + formattedParam[i] = impl.formatter.format("", param); formatted = true; break; }