This is an automated email from the ASF dual-hosted git repository.

morningman pushed a commit to branch dev-1.0.1
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git

commit 8c8e1729e37a3ce0630a1b09ac2a6c8acaa6b71b
Author: yiguolei <676222...@qq.com>
AuthorDate: Mon Apr 25 18:29:29 2022 +0800

    [Improvement] not print logs to fe.out when fe is running under daemon mode 
(#9195)
    
    Co-authored-by: yiguolei <yiguo...@gmail.com>
---
 bin/start_fe.sh                                            |  1 +
 fe/fe-core/src/main/java/org/apache/doris/PaloFe.java      |  3 +++
 .../src/main/java/org/apache/doris/common/Log4jConfig.java | 14 +++++++++++++-
 3 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/bin/start_fe.sh b/bin/start_fe.sh
index b9f1df0b8e..37a474ca4b 100755
--- a/bin/start_fe.sh
+++ b/bin/start_fe.sh
@@ -166,6 +166,7 @@ fi
 if [ ${RUN_DAEMON} -eq 1 ]; then
     nohup $LIMIT $JAVA $final_java_opt org.apache.doris.PaloFe ${HELPER} "$@" 
>> $LOG_DIR/fe.out 2>&1 < /dev/null &
 else
+    export DORIS_LOG_TO_STDERR=1
     $LIMIT $JAVA $final_java_opt org.apache.doris.PaloFe ${HELPER} "$@" < 
/dev/null
 fi
 
diff --git a/fe/fe-core/src/main/java/org/apache/doris/PaloFe.java 
b/fe/fe-core/src/main/java/org/apache/doris/PaloFe.java
index c8ee60a4e1..2b04cbc90c 100755
--- a/fe/fe-core/src/main/java/org/apache/doris/PaloFe.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/PaloFe.java
@@ -65,6 +65,9 @@ public class PaloFe {
 
     // entrance for doris frontend
     public static void start(String dorisHomeDir, String pidDir, String[] 
args) {
+       if (System.getenv("DORIS_LOG_TO_STDERR") != null) {
+               Log4jConfig.foreground = true;
+       }
         if (Strings.isNullOrEmpty(dorisHomeDir)) {
             System.err.println("env DORIS_HOME is not set.");
             return;
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 6f2dbf5f81..81ae11feb9 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
@@ -97,7 +97,7 @@ public class Log4jConfig extends XmlConfiguration {
             "    <Root level=\"${sys_log_level}\">\n" +
             "      <AppenderRef ref=\"Sys\"/>\n" +
             "      <AppenderRef ref=\"SysWF\" level=\"WARN\"/>\n" +
-            "      <AppenderRef ref=\"Console\"/>\n" +
+            "      <!--REPLACED BY Console Logger-->\n" +
             "    </Root>\n" +
             "    <Logger name=\"audit\" level=\"ERROR\" 
additivity=\"false\">\n" +
             "      <AppenderRef ref=\"Auditfile\"/>\n" +
@@ -116,6 +116,12 @@ public class Log4jConfig extends XmlConfiguration {
     public static String confDir;
     // custom conf dir
     public static String customConfDir;
+    // Doris uses both system.out and log4j to print log messages.
+    // This variable is used to check whether to add console appender to 
loggers.
+    //     If doris is running under daemon mode, then this variable == false, 
and console logger will not be added.
+    //    If doris is not running under daemon mode, then this variable == 
true, and console logger will be added to 
+    //    loggers, all logs will be printed to console.
+    public static boolean foreground = false;
 
     private static void reconfig() throws IOException {
         String newXmlConfTemplate = xmlConfTemplate;
@@ -167,6 +173,12 @@ public class Log4jConfig extends XmlConfiguration {
         newXmlConfTemplate = newXmlConfTemplate.replaceAll("<!--REPLACED BY 
AUDIT AND VERBOSE MODULE NAMES-->",
                 sb.toString());
 
+        if (foreground) {
+            StringBuilder consoleLogger = new StringBuilder();
+            consoleLogger.append("<AppenderRef ref=\"Console\"/>\n");
+            newXmlConfTemplate = newXmlConfTemplate.replaceAll("<!--REPLACED 
BY Console Logger-->",
+                       consoleLogger.toString());
+        }
         Map<String, String> properties = Maps.newHashMap();
         properties.put("sys_log_dir", sysLogDir);
         properties.put("sys_file_pattern", sysLogRollPattern);


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to