From 226882ea134d1325269a240d83c1b39e30d87a08 Mon Sep 17 00:00:00 2001 From: jason <819635822@qq.com> Date: Fri, 24 Dec 2021 18:03:40 +0800 Subject: [PATCH 1/3] fix: chinese garbled characters #1617 --- .../service/local/AppiumDriverLocalService.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/io/appium/java_client/service/local/AppiumDriverLocalService.java b/src/main/java/io/appium/java_client/service/local/AppiumDriverLocalService.java index ac86cf91b..e291a88bc 100644 --- a/src/main/java/io/appium/java_client/service/local/AppiumDriverLocalService.java +++ b/src/main/java/io/appium/java_client/service/local/AppiumDriverLocalService.java @@ -33,6 +33,7 @@ import org.slf4j.LoggerFactory; import org.slf4j.event.Level; +import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.io.OutputStream; @@ -410,16 +411,15 @@ static Slf4jLogMessageContext parseSlf4jContextFromLogMessage(String logMessage) public void addLogMessageConsumer(Consumer consumer) { checkNotNull(consumer, "consumer parameter is NULL!"); addOutPutStream(new OutputStream() { - StringBuilder lineBuilder = new StringBuilder(); + private ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); @Override public void write(int chr) { try { - lineBuilder.append((char) chr); - Matcher matcher = LOG_MESSAGE_PATTERN.matcher(lineBuilder.toString()); - if (matcher.matches()) { - consumer.accept(matcher.group(1)); - lineBuilder = new StringBuilder(); + outputStream.write(chr); + if ((chr == '\n')) { + consumer.accept(outputStream.toString()); + outputStream.reset(); } } catch (Exception e) { // log error and continue From f13d3f8b722bd898a5b75fceceb4a2eb3ae1cda2 Mon Sep 17 00:00:00 2001 From: Jason <819635822@qq.com> Date: Fri, 24 Dec 2021 22:58:58 +0800 Subject: [PATCH 2/3] remove duplicate brackets --- .../java_client/service/local/AppiumDriverLocalService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/appium/java_client/service/local/AppiumDriverLocalService.java b/src/main/java/io/appium/java_client/service/local/AppiumDriverLocalService.java index e291a88bc..ffe2bdb9a 100644 --- a/src/main/java/io/appium/java_client/service/local/AppiumDriverLocalService.java +++ b/src/main/java/io/appium/java_client/service/local/AppiumDriverLocalService.java @@ -417,7 +417,7 @@ public void addLogMessageConsumer(Consumer consumer) { public void write(int chr) { try { outputStream.write(chr); - if ((chr == '\n')) { + if (chr == '\n') { consumer.accept(outputStream.toString()); outputStream.reset(); } From 232fc454b746b5b170e745a9ebf927365b43380e Mon Sep 17 00:00:00 2001 From: Jason <819635822@qq.com> Date: Fri, 24 Dec 2021 23:20:11 +0800 Subject: [PATCH 3/3] make field be final --- .../java_client/service/local/AppiumDriverLocalService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/appium/java_client/service/local/AppiumDriverLocalService.java b/src/main/java/io/appium/java_client/service/local/AppiumDriverLocalService.java index ffe2bdb9a..cc1c77ad5 100644 --- a/src/main/java/io/appium/java_client/service/local/AppiumDriverLocalService.java +++ b/src/main/java/io/appium/java_client/service/local/AppiumDriverLocalService.java @@ -411,7 +411,7 @@ static Slf4jLogMessageContext parseSlf4jContextFromLogMessage(String logMessage) public void addLogMessageConsumer(Consumer consumer) { checkNotNull(consumer, "consumer parameter is NULL!"); addOutPutStream(new OutputStream() { - private ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + private final ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); @Override public void write(int chr) {