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..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,6 +2612,12 @@ 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."}, + 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 320cdd6114bcef..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 @@ -39,81 +39,101 @@ 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(); + + 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") + .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(" \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"); + + getXmlConfByStrategy("info_sys_accumulated_file_size", "sys_log_delete_age"); + + 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"); + + getXmlConfByStrategy("warn_sys_accumulated_file_size", "sys_log_delete_age"); + + 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"); + + getXmlConfByStrategy("audit_sys_accumulated_file_size", "audit_log_delete_age"); + + 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 +154,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