From 1320c97680ce98fd7742d2075929e24801256601 Mon Sep 17 00:00:00 2001 From: deardeng <565620795@qq.com> Date: Mon, 6 May 2024 19:43:35 +0800 Subject: [PATCH 1/2] [fix](log) Compatible logging strategy for cloud and non-cloud --- .../java/org/apache/doris/common/Config.java | 5 + .../org/apache/doris/common/Log4jConfig.java | 185 +++++++++++------- 2 files changed, 114 insertions(+), 76 deletions(-) diff --git a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java index 6a8f2e845dd0f3..5fea7a8472f413 100644 --- a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java +++ b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java @@ -2612,6 +2612,11 @@ public class Config extends ConfigBase { //========================================================================== // begin of cloud config //========================================================================== + @ConfField(description = {"是否启用FE 日志文件按照大小删除策略,当日志大小超过指定大小,删除相关的log。默认关闭,为按照时间策略删除", + "Whether to enable the FE log file deletion policy based on size, " + + "where logs exceeding the specified size are deleted. " + + "It is disabled by default and follows a time-based deletion policy."}) + public static boolean log_by_size = false; @ConfField public static int info_sys_accumulated_file_size = 4; @ConfField public static int warn_sys_accumulated_file_size = 2; diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/Log4jConfig.java b/fe/fe-core/src/main/java/org/apache/doris/common/Log4jConfig.java index 320cdd6114bcef..9ab546cdf360d4 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/common/Log4jConfig.java +++ b/fe/fe-core/src/main/java/org/apache/doris/common/Log4jConfig.java @@ -39,81 +39,114 @@ public class Log4jConfig extends XmlConfiguration { private static final long serialVersionUID = 1L; - // CHECKSTYLE OFF - private static String xmlConfTemplate = "\n" - + "\n\n" - + "\n" - + " \n" - + " " - + " \n" - + " %d{yyyy-MM-dd HH:mm:ss,SSS} %p (%t|%tid)%m%n\n" - + " \n" - + " " - + " \n" - + " \n" - + " %d{yyyy-MM-dd HH:mm:ss,SSS} %p (%t|%tid)%m%n\n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " %d{yyyy-MM-dd HH:mm:ss,SSS} %p (%t|%tid)%m%n\n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " %d{yyyy-MM-dd HH:mm:ss,SSS} [%c{1}] %m%n\n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + " \n" - + ""; - // CHECKSTYLE ON + private static StringBuilder xmlConfTemplateBuilder = new StringBuilder(); + + static { + // CHECKSTYLE OFF + xmlConfTemplateBuilder.append("\n") + .append("\n\n") + .append("\n") + .append(" \n") + .append(" ") + .append(" \n") + .append(" %d{yyyy-MM-dd HH:mm:ss,SSS} %p (%t|%tid)%m%n\n") + .append(" \n") + .append(" ") + .append(" \n") + .append(" \n") + .append(" %d{yyyy-MM-dd HH:mm:ss,SSS} %p (%t|%tid)%m%n\n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n"); + + if (Config.log_by_size) { + xmlConfTemplateBuilder + .append(" \n") + .append(" \n") + .append(" \n"); + + } else { + xmlConfTemplateBuilder + .append(" \n"); + } + + xmlConfTemplateBuilder + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" %d{yyyy-MM-dd HH:mm:ss,SSS} %p (%t|%tid)%m%n\n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n"); + + if (Config.log_by_size) { + xmlConfTemplateBuilder + .append(" \n") + .append(" \n") + .append(" \n"); + } else { + xmlConfTemplateBuilder + .append(" \n"); + } + + xmlConfTemplateBuilder + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" %d{yyyy-MM-dd HH:mm:ss,SSS} [%c{1}] %m%n\n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n"); + + if (Config.log_by_size) { + xmlConfTemplateBuilder + .append(" \n") + .append(" \n") + .append(" \n"); + + } else { + xmlConfTemplateBuilder + .append(" \n"); + } + + xmlConfTemplateBuilder + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(" \n") + .append(""); + // CHECKSTYLE ON + } private static StrSubstitutor strSub; private static String sysLogLevel; @@ -134,7 +167,7 @@ public class Log4jConfig extends XmlConfiguration { public static boolean foreground = false; private static void reconfig() throws IOException { - String newXmlConfTemplate = xmlConfTemplate; + String newXmlConfTemplate = xmlConfTemplateBuilder.toString(); // sys log config // ATTN, sys_log_dir is deprecated, use LOG_DIR instead From a3aeb240373ace15d081d829a144fb206dc81dc2 Mon Sep 17 00:00:00 2001 From: deardeng <565620795@qq.com> Date: Tue, 7 May 2024 11:00:51 +0800 Subject: [PATCH 2/2] fix review --- .../java/org/apache/doris/common/Config.java | 7 +-- .../org/apache/doris/common/Log4jConfig.java | 47 +++++++------------ 2 files changed, 21 insertions(+), 33 deletions(-) diff --git a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java index 5fea7a8472f413..4dd98b28da11e5 100644 --- a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java +++ b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java @@ -2612,11 +2612,12 @@ public class Config extends ConfigBase { //========================================================================== // begin of cloud config //========================================================================== - @ConfField(description = {"是否启用FE 日志文件按照大小删除策略,当日志大小超过指定大小,删除相关的log。默认关闭,为按照时间策略删除", + @ConfField(description = {"是否启用FE 日志文件按照大小删除策略,当日志大小超过指定大小,删除相关的log。默认为按照时间策略删除", "Whether to enable the FE log file deletion policy based on size, " + "where logs exceeding the specified size are deleted. " - + "It is disabled by default and follows a time-based deletion policy."}) - public static boolean log_by_size = false; + + "It is disabled by default and follows a time-based deletion policy."}, + options = {"age", "size"}) + public static String log_rollover_strategy = "age"; @ConfField public static int info_sys_accumulated_file_size = 4; @ConfField public static int warn_sys_accumulated_file_size = 2; diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/Log4jConfig.java b/fe/fe-core/src/main/java/org/apache/doris/common/Log4jConfig.java index 9ab546cdf360d4..8c840a876bb69a 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/common/Log4jConfig.java +++ b/fe/fe-core/src/main/java/org/apache/doris/common/Log4jConfig.java @@ -41,6 +41,19 @@ public class Log4jConfig extends XmlConfiguration { private static StringBuilder xmlConfTemplateBuilder = new StringBuilder(); + private static void getXmlConfByStrategy(final String size, final String age) { + if (Config.log_rollover_strategy.equalsIgnoreCase("size")) { + xmlConfTemplateBuilder + .append(" \n") + .append(" \n") + .append(" \n"); + } else { + // default age + xmlConfTemplateBuilder + .append(" \n"); + } + } + static { // CHECKSTYLE OFF xmlConfTemplateBuilder.append("\n") @@ -51,7 +64,7 @@ public class Log4jConfig extends XmlConfiguration { .append(" \n") .append(" %d{yyyy-MM-dd HH:mm:ss,SSS} %p (%t|%tid)%m%n\n") .append(" \n") - .append(" ") + .append(" \n") .append(" \n") .append(" \n") .append(" %d{yyyy-MM-dd HH:mm:ss,SSS} %p (%t|%tid)%m%n\n") @@ -64,16 +77,7 @@ public class Log4jConfig extends XmlConfiguration { .append(" \n") .append(" \n"); - if (Config.log_by_size) { - xmlConfTemplateBuilder - .append(" \n") - .append(" \n") - .append(" \n"); - - } else { - xmlConfTemplateBuilder - .append(" \n"); - } + getXmlConfByStrategy("info_sys_accumulated_file_size", "sys_log_delete_age"); xmlConfTemplateBuilder .append(" \n") @@ -91,15 +95,7 @@ public class Log4jConfig extends XmlConfiguration { .append(" \n") .append(" \n"); - if (Config.log_by_size) { - xmlConfTemplateBuilder - .append(" \n") - .append(" \n") - .append(" \n"); - } else { - xmlConfTemplateBuilder - .append(" \n"); - } + getXmlConfByStrategy("warn_sys_accumulated_file_size", "sys_log_delete_age"); xmlConfTemplateBuilder .append(" \n") @@ -117,16 +113,7 @@ public class Log4jConfig extends XmlConfiguration { .append(" \n") .append(" \n"); - if (Config.log_by_size) { - xmlConfTemplateBuilder - .append(" \n") - .append(" \n") - .append(" \n"); - - } else { - xmlConfTemplateBuilder - .append(" \n"); - } + getXmlConfByStrategy("audit_sys_accumulated_file_size", "audit_log_delete_age"); xmlConfTemplateBuilder .append(" \n")