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")