From d2480fb29814d4bb5c73244f35bb5c86fd0bd5ca Mon Sep 17 00:00:00 2001 From: panchangqing Date: Thu, 24 Jul 2025 14:10:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dso=E6=96=87=E4=BB=B6=E5=90=8D?= =?UTF-8?q?=E5=8C=85=E5=90=AB=E7=89=B9=E6=AE=8A=E5=AD=97=E7=AC=A6=E7=9A=84?= =?UTF-8?q?hap=E5=8C=85=E7=AD=BE=E5=90=8D=E5=A4=B1=E8=B4=A5=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: panchangqing --- .../com/ohos/hapsigntool/utils/LogUtils.java | 51 ++++---- .../com/ohos/hapsigntool/LogUtilsTest.java | 111 ++++++++++++++++++ .../src/test/resources/log.properties | 1 + 3 files changed, 143 insertions(+), 20 deletions(-) create mode 100644 hapsigntool/hap_sign_tool_lib/src/test/java/com/ohos/hapsigntool/LogUtilsTest.java create mode 100644 hapsigntool/hap_sign_tool_lib/src/test/resources/log.properties diff --git a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/LogUtils.java b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/LogUtils.java index f02b06cb..79588046 100644 --- a/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/LogUtils.java +++ b/hapsigntool/hap_sign_tool_lib/src/main/java/com/ohos/hapsigntool/utils/LogUtils.java @@ -90,7 +90,7 @@ public class LogUtils { * @param log log string */ public void info(String log) { - logger.info(" INFO - " + log); + logger.info(() -> " INFO - " + log); OUT_HANDLER.flush(); } @@ -101,7 +101,7 @@ public class LogUtils { * @param arg arg */ public void info(String log, Object arg) { - logger.info(" INFO - " + replaceArgs(log, arg)); + logger.info(() -> " INFO - " + replaceArgs(log, arg)); OUT_HANDLER.flush(); } @@ -113,7 +113,7 @@ public class LogUtils { * @param arg2 arg */ public void info(String log, Object arg1, Object arg2) { - logger.info(" INFO - " + replaceArgs(log, arg1, arg2)); + logger.info(() -> " INFO - " + replaceArgs(log, arg1, arg2)); OUT_HANDLER.flush(); } @@ -123,7 +123,7 @@ public class LogUtils { * @param log log string */ public void warn(String log) { - logger.warning(" WARN - " + log); + logger.warning(() -> " WARN - " + log); ERR_HANDLER.flush(); } @@ -134,7 +134,7 @@ public class LogUtils { * @param arg arg */ public void warn(String log, Object arg) { - logger.warning(" WARN - " + replaceArgs(log, arg)); + logger.warning(() -> " WARN - " + replaceArgs(log, arg)); ERR_HANDLER.flush(); } @@ -146,7 +146,7 @@ public class LogUtils { * @param e throwable */ public void warn(String log, Object arg, Throwable e) { - logger.log(Level.WARNING, e, () -> " DEBUG - " + replaceArgs(log, arg)); + logger.log(Level.WARNING, e, () -> " WARN - " + replaceArgs(log, arg)); ERR_HANDLER.flush(); } @@ -158,7 +158,7 @@ public class LogUtils { * @param arg2 arg */ public void warn(String log, Object arg1, Object arg2) { - logger.warning(" WARN - " + replaceArgs(log, arg1, arg2)); + logger.warning(() -> " WARN - " + replaceArgs(log, arg1, arg2)); ERR_HANDLER.flush(); } @@ -169,7 +169,7 @@ public class LogUtils { * @param e throwable */ public void warn(String log, Throwable e) { - logger.log(Level.WARNING, e, () -> " DEBUG - " + log); + logger.log(Level.WARNING, e, () -> " WARN - " + log); ERR_HANDLER.flush(); } @@ -179,7 +179,7 @@ public class LogUtils { * @param log log string */ public void debug(String log) { - logger.config(" DEBUG - " + log); + logger.config(() -> " DEBUG - " + log); OUT_HANDLER.flush(); } @@ -191,7 +191,7 @@ public class LogUtils { * @param arg2 arg */ public void debug(String log, Object arg1, Object arg2) { - logger.config(" DEBUG - " + replaceArgs(log, arg1, arg2)); + logger.config(() -> " DEBUG - " + replaceArgs(log, arg1, arg2)); OUT_HANDLER.flush(); } @@ -213,7 +213,7 @@ public class LogUtils { * @param arg arg */ public void debug(String log, Object arg) { - logger.config(" DEBUG - " + replaceArgs(log, arg)); + logger.config(() -> " DEBUG - " + replaceArgs(log, arg)); OUT_HANDLER.flush(); } @@ -223,7 +223,7 @@ public class LogUtils { * @param log log string */ public void error(String log) { - logger.severe(" ERROR - " + log); + logger.severe(() -> " ERROR - " + log); ERR_HANDLER.flush(); } @@ -257,7 +257,7 @@ public class LogUtils { * @param arg arg */ public void error(String log, Object arg) { - logger.severe(" ERROR - " + replaceArgs(log, arg)); + logger.severe(() -> " ERROR - " + replaceArgs(log, arg)); ERR_HANDLER.flush(); } @@ -269,7 +269,7 @@ public class LogUtils { * @param arg2 arg */ public void error(String log, Object arg1, Object arg2) { - logger.severe(" ERROR - " + replaceArgs(log, arg1, arg2)); + logger.severe(() -> " ERROR - " + replaceArgs(log, arg1, arg2)); ERR_HANDLER.flush(); } @@ -282,21 +282,32 @@ public class LogUtils { * @param arg3 arg */ public void error(String log, Object arg1, Object arg2, Object arg3) { - logger.severe(" ERROR - " + replaceArgs(log, arg1, arg2, arg3)); + logger.severe(() -> " ERROR - " + replaceArgs(log, arg1, arg2, arg3)); ERR_HANDLER.flush(); } private static String replaceArgs(String line, Object... args) { + if (line == null || args == null || args.length == 0) { + return line; + } Matcher matcher = PATTERN.matcher(line); - String result = line; if (!matcher.find()) { return line; } - for (Object arg : args) { - Matcher m = PATTERN.matcher(result); - result = m.replaceFirst(String.valueOf(arg)); + matcher.reset(); + StringBuffer result = new StringBuffer(); + int index = 0; + while (matcher.find()) { + matcher.appendReplacement(result, ""); + if (index < args.length) { + result.append(args[index++]); + } else { + result.append(matcher.group()); + break; + } } - return result; + matcher.appendTail(result); + return result.toString(); } private static String getJarConfig(String configFileName) throws LogConfigException { diff --git a/hapsigntool/hap_sign_tool_lib/src/test/java/com/ohos/hapsigntool/LogUtilsTest.java b/hapsigntool/hap_sign_tool_lib/src/test/java/com/ohos/hapsigntool/LogUtilsTest.java new file mode 100644 index 00000000..a28e8eb9 --- /dev/null +++ b/hapsigntool/hap_sign_tool_lib/src/test/java/com/ohos/hapsigntool/LogUtilsTest.java @@ -0,0 +1,111 @@ +/* + * Copyright (c) 2025-2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.ohos.hapsigntool; + +import com.ohos.hapsigntool.utils.LogUtils; +import org.junit.jupiter.api.Test; + +/** + * Test print logs. + * + * @since 2025/07/24 + */ +public class LogUtilsTest { + private static final LogUtils LOGGER = new LogUtils(LogUtilsTest.class); + + private static final String NORMAL_CHARACTER = "test 123ABC"; + private static final String SPECIAL_CHARACTER = "$#./\\%@,:;*+=|?<>!~`-_\"'()[]{}"; + + /** + * Test print debug logs. + */ + @Test + public void testPrintDebugLog() { + LOGGER.debug(null); + LOGGER.debug(NORMAL_CHARACTER); + LOGGER.debug(SPECIAL_CHARACTER); + LOGGER.debug("arg1: {}", null); + LOGGER.debug("arg1: {}", NORMAL_CHARACTER); + LOGGER.debug("arg1: {}", SPECIAL_CHARACTER); + LOGGER.debug("arg1: {}, arg2: {}", NORMAL_CHARACTER, null); + LOGGER.debug("arg1: {}, arg2: {}", SPECIAL_CHARACTER, null); + LOGGER.debug("arg1: {}, arg2: {}", null, NORMAL_CHARACTER); + LOGGER.debug("arg1: {}, arg2: {}", null, SPECIAL_CHARACTER); + LOGGER.debug("arg1: {}, arg2: {}", null, null); + LOGGER.debug("arg1: {}, arg2: {}", NORMAL_CHARACTER, SPECIAL_CHARACTER); + LOGGER.debug("arg1: {}, arg2: {}", SPECIAL_CHARACTER, NORMAL_CHARACTER); + } + + /** + * Test print info logs. + */ + @Test + public void testPrintInfoLog() { + LOGGER.info(null); + LOGGER.info(NORMAL_CHARACTER); + LOGGER.info(SPECIAL_CHARACTER); + LOGGER.info("arg1: {}", null); + LOGGER.info("arg1: {}", NORMAL_CHARACTER); + LOGGER.info("arg1: {}", SPECIAL_CHARACTER); + LOGGER.info("arg1: {}, arg2: {}", NORMAL_CHARACTER, null); + LOGGER.info("arg1: {}, arg2: {}", SPECIAL_CHARACTER, null); + LOGGER.info("arg1: {}, arg2: {}", null, NORMAL_CHARACTER); + LOGGER.info("arg1: {}, arg2: {}", null, SPECIAL_CHARACTER); + LOGGER.info("arg1: {}, arg2: {}", null, null); + LOGGER.info("arg1: {}, arg2: {}", NORMAL_CHARACTER, SPECIAL_CHARACTER); + LOGGER.info("arg1: {}, arg2: {}", SPECIAL_CHARACTER, NORMAL_CHARACTER); + } + + /** + * Test print warn logs. + */ + @Test + public void testPrintWarnLog() { + LOGGER.warn(null); + LOGGER.warn(NORMAL_CHARACTER); + LOGGER.warn(SPECIAL_CHARACTER); + LOGGER.warn("arg1: {}", null); + LOGGER.warn("arg1: {}", NORMAL_CHARACTER); + LOGGER.warn("arg1: {}", SPECIAL_CHARACTER); + LOGGER.warn("arg1: {}, arg2: {}", NORMAL_CHARACTER, null); + LOGGER.warn("arg1: {}, arg2: {}", SPECIAL_CHARACTER, null); + LOGGER.warn("arg1: {}, arg2: {}", null, NORMAL_CHARACTER); + LOGGER.warn("arg1: {}, arg2: {}", null, SPECIAL_CHARACTER); + LOGGER.warn("arg1: {}, arg2: {}", null, null); + LOGGER.warn("arg1: {}, arg2: {}", NORMAL_CHARACTER, SPECIAL_CHARACTER); + LOGGER.warn("arg1: {}, arg2: {}", SPECIAL_CHARACTER, NORMAL_CHARACTER); + } + + /** + * Test print error logs. + */ + @Test + public void testPrintErrorLog() { + LOGGER.error(null); + LOGGER.error(NORMAL_CHARACTER); + LOGGER.error(SPECIAL_CHARACTER); + LOGGER.error("arg1: {}", null); + LOGGER.error("arg1: {}", NORMAL_CHARACTER); + LOGGER.error("arg1: {}", SPECIAL_CHARACTER); + LOGGER.error("arg1: {}, arg2: {}", NORMAL_CHARACTER, null); + LOGGER.error("arg1: {}, arg2: {}", SPECIAL_CHARACTER, null); + LOGGER.error("arg1: {}, arg2: {}", null, NORMAL_CHARACTER); + LOGGER.error("arg1: {}, arg2: {}", null, SPECIAL_CHARACTER); + LOGGER.error("arg1: {}, arg2: {}", null, null); + LOGGER.error("arg1: {}, arg2: {}", NORMAL_CHARACTER, SPECIAL_CHARACTER); + LOGGER.error("arg1: {}, arg2: {}", SPECIAL_CHARACTER, NORMAL_CHARACTER); + } +} diff --git a/hapsigntool/hap_sign_tool_lib/src/test/resources/log.properties b/hapsigntool/hap_sign_tool_lib/src/test/resources/log.properties new file mode 100644 index 00000000..c62189ec --- /dev/null +++ b/hapsigntool/hap_sign_tool_lib/src/test/resources/log.properties @@ -0,0 +1 @@ +level=debug \ No newline at end of file -- Gitee