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

leonbao pushed a commit to branch 2.0.2-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/2.0.2-prepare by this push:
     new 32fb3f8  [Bug] [dolphinscheduler-server] memory leak of logger #7661 
(#7665)
32fb3f8 is described below

commit 32fb3f84df18fbd686b9c4522f91ca1898bf6a7a
Author: zwZjut <[email protected]>
AuthorDate: Tue Dec 28 18:57:44 2021 +0800

    [Bug] [dolphinscheduler-server] memory leak of logger #7661 (#7665)
    
    * [Feature][dolphinscheduler-api] parse traceId in http header for Cross 
system delivery to #7237 (#7238)
    
    * to #7237
    
    * rerun test
    
    Co-authored-by: honghuo.zw <[email protected]>
    
    * chery-pick 05aef27 and handle conflicts
    
    * to #7065: fix ExecutorService and schedulerService (#7072)
    
    Co-authored-by: honghuo.zw <[email protected]>
    
    * [Feature][dolphinscheduler-api] access control of taskDefinition and 
taskInstance in project to #7081  (#7082)
    
    * to #7081
    
    * fix #7081
    
    * to #7081
    
    Co-authored-by: honghuo.zw <[email protected]>
    
    * chery-pick 8ebe060 and handle conflicts
    
    * cherry-pick 1f18444 and handle conflicts
    
    * fix #6807: dolphinscheduler.zookeeper.env_vars - > 
dolphinscheduler.registry.env_vars (#6808)
    
    Co-authored-by: honghuo.zw <[email protected]>
    Co-authored-by: Kirs <[email protected]>
    
    * add default constructor (#6780)
    
    Co-authored-by: honghuo.zw <[email protected]>
    
    * to #7108 (#7109)
    
    * add conf && pick #7562 to worker
    
    * to #7661
    
    * to #7661
    
    * to #7661:fix ut
    
    Co-authored-by: honghuo.zw <[email protected]>
    Co-authored-by: Kirs <[email protected]>
---
 .../dolphinscheduler/logback/logback-master.xml    |  4 +--
 .../dolphinscheduler/logback/logback-worker.xml    |  4 +--
 .../dolphinscheduler/common/utils/LoggerUtils.java | 10 ++----
 .../server/log/TaskLogDiscriminator.java           | 37 ++++++++++++++++------
 .../dolphinscheduler/server/log/TaskLogFilter.java | 17 ++++++----
 .../server/master/MasterServer.java                |  3 --
 .../master/runner/task/BaseTaskProcessor.java      |  3 +-
 .../master/runner/task/ConditionTaskProcessor.java | 11 ++++---
 .../server/worker/runner/TaskExecuteThread.java    | 32 +++++++++++++------
 .../server/log/TaskLogDiscriminatorTest.java       | 17 ++++++----
 .../server/log/TaskLogFilterTest.java              | 18 ++++++-----
 .../worker/processor/TaskExecuteProcessorTest.java |  8 -----
 .../dolphinscheduler/spi/task/TaskConstants.java   | 24 ++++++++++----
 .../plugin/task/api/AbstractCommandExecutor.java   |  5 +--
 .../plugin/task/api/AbstractTaskExecutor.java      |  4 +--
 .../plugin/task/datax/DataxTask.java               |  3 --
 .../plugin/task/http/HttpTask.java                 |  4 ---
 .../plugin/task/procedure/ProcedureTask.java       |  4 ---
 .../dolphinscheduler/plugin/task/sql/SqlTask.java  |  3 --
 19 files changed, 120 insertions(+), 91 deletions(-)

diff --git a/docker/build/conf/dolphinscheduler/logback/logback-master.xml 
b/docker/build/conf/dolphinscheduler/logback/logback-master.xml
index f0d2c81..0d61968 100644
--- a/docker/build/conf/dolphinscheduler/logback/logback-master.xml
+++ b/docker/build/conf/dolphinscheduler/logback/logback-master.xml
@@ -45,7 +45,7 @@
                 <file>${log.base}/${taskAppId}.log</file>
                 <encoder>
                     <pattern>
-                        [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} 
%logger{96}:[%line] - %messsage%n
+                        [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] - 
%messsage%n
                     </pattern>
                     <charset>UTF-8</charset>
                 </encoder>
@@ -66,7 +66,7 @@
         </rollingPolicy>
         <encoder>
             <pattern>
-                [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - 
%msg%n
+                [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] 
%logger{96}:[%line] - %msg%n
             </pattern>
             <charset>UTF-8</charset>
         </encoder>
diff --git a/docker/build/conf/dolphinscheduler/logback/logback-worker.xml 
b/docker/build/conf/dolphinscheduler/logback/logback-worker.xml
index 7127219..4aca8b8 100644
--- a/docker/build/conf/dolphinscheduler/logback/logback-worker.xml
+++ b/docker/build/conf/dolphinscheduler/logback/logback-worker.xml
@@ -46,7 +46,7 @@
                 <file>${log.base}/${taskAppId}.log</file>
                 <encoder>
                     <pattern>
-                        [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} 
%logger{96}:[%line] - %messsage%n
+                        [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} [%thread]  - 
%messsage%n
                     </pattern>
                     <charset>UTF-8</charset>
                 </encoder>
@@ -66,7 +66,7 @@
         </rollingPolicy>
         <encoder>
             <pattern>
-                [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - 
%messsage%n
+                [%level] %date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] 
%logger{96}:[%line] - %messsage%n
             </pattern>
             <charset>UTF-8</charset>
         </encoder>
diff --git 
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/LoggerUtils.java
 
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/LoggerUtils.java
index 1b25298..0b40980 100644
--- 
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/LoggerUtils.java
+++ 
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/LoggerUtils.java
@@ -18,8 +18,6 @@
 package org.apache.dolphinscheduler.common.utils;
 
 import org.apache.dolphinscheduler.common.Constants;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import java.io.BufferedReader;
 import java.io.FileInputStream;
@@ -30,6 +28,9 @@ import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * logger utils
  */
@@ -54,11 +55,6 @@ public class LoggerUtils {
     /**
      * Task Logger Thread's name
      */
-    public static final String TASK_LOGGER_THREAD_NAME = "TaskLogInfo";
-
-    /**
-     * Task Logger Thread's name
-     */
     public static final String TASK_APPID_LOG_FORMAT = "[taskAppId=";
 
     /**
diff --git 
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/log/TaskLogDiscriminator.java
 
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/log/TaskLogDiscriminator.java
index 029242f..524f8be 100644
--- 
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/log/TaskLogDiscriminator.java
+++ 
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/log/TaskLogDiscriminator.java
@@ -16,16 +16,23 @@
  */
 package org.apache.dolphinscheduler.server.log;
 
-import ch.qos.logback.classic.spi.ILoggingEvent;
-import ch.qos.logback.core.sift.AbstractDiscriminator;
 import org.apache.dolphinscheduler.common.Constants;
 import org.apache.dolphinscheduler.common.utils.LoggerUtils;
+import org.apache.dolphinscheduler.spi.task.TaskConstants;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import ch.qos.logback.core.sift.AbstractDiscriminator;
 
 /**
  * Task Log Discriminator
  */
 public class TaskLogDiscriminator extends AbstractDiscriminator<ILoggingEvent> 
{
 
+    private static Logger logger = 
LoggerFactory.getLogger(TaskLogDiscriminator.class);
+
     /**
      * key
      */
@@ -42,15 +49,25 @@ public class TaskLogDiscriminator extends 
AbstractDiscriminator<ILoggingEvent> {
      */
     @Override
     public String getDiscriminatingValue(ILoggingEvent event) {
-        String loggerName = event.getLoggerName()
-                .split(Constants.EQUAL_SIGN)[1];
-        String prefix = LoggerUtils.TASK_LOGGER_INFO_PREFIX + "-";
-        if (loggerName.startsWith(prefix)) {
-            return loggerName.substring(prefix.length(),
-                    loggerName.length() - 1).replace("-","/");
-        } else {
-            return "unknown_task";
+        String key = "unknown_task";
+
+        logger.debug("task log discriminator start, key is:{}, thread 
name:{},loggerName:{}", key, event.getThreadName(), event.getLoggerName());
+
+        if 
(event.getLoggerName().startsWith(TaskConstants.TASK_LOG_LOGGER_NAME)) {
+            String threadName = event.getThreadName();
+            if (threadName.endsWith(TaskConstants.GET_OUTPUT_LOG_SERVICE)) {
+                threadName = threadName.substring(0, threadName.length() - 
TaskConstants.GET_OUTPUT_LOG_SERVICE.length());
+            }
+            String part1 = threadName
+                    .split(Constants.EQUAL_SIGN)[1];
+            String prefix = LoggerUtils.TASK_LOGGER_INFO_PREFIX + "-";
+            if (part1.startsWith(prefix)) {
+                key = part1.substring(prefix.length(),
+                        part1.length() - 1).replace("-", "/");
+            }
         }
+        logger.debug("task log discriminator end, key is:{}, thread 
name:{},loggerName:{}", key, event.getThreadName(), event.getLoggerName());
+        return key;
     }
 
     @Override
diff --git 
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/log/TaskLogFilter.java
 
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/log/TaskLogFilter.java
index 9c47fb9..dfe95c1 100644
--- 
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/log/TaskLogFilter.java
+++ 
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/log/TaskLogFilter.java
@@ -14,11 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.dolphinscheduler.server.log;
 
-import static 
org.apache.dolphinscheduler.common.utils.LoggerUtils.TASK_APPID_LOG_FORMAT;
+import org.apache.dolphinscheduler.spi.task.TaskConstants;
 
-import org.apache.dolphinscheduler.common.utils.LoggerUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import ch.qos.logback.classic.Level;
 import ch.qos.logback.classic.spi.ILoggingEvent;
@@ -30,6 +32,7 @@ import ch.qos.logback.core.spi.FilterReply;
  */
 public class TaskLogFilter extends Filter<ILoggingEvent> {
 
+    private static Logger logger = 
LoggerFactory.getLogger(TaskLogFilter.class);
     /**
      * level
      */
@@ -46,11 +49,13 @@ public class TaskLogFilter extends Filter<ILoggingEvent> {
      */
     @Override
     public FilterReply decide(ILoggingEvent event) {
-        if 
(event.getThreadName().startsWith(LoggerUtils.TASK_LOGGER_THREAD_NAME)
-                || event.getLoggerName().startsWith(" - " + 
TASK_APPID_LOG_FORMAT)
+        FilterReply filterReply = FilterReply.DENY;
+        if 
((event.getThreadName().startsWith(TaskConstants.TASK_LOGGER_THREAD_NAME)
+                && 
event.getLoggerName().startsWith(TaskConstants.TASK_LOG_LOGGER_NAME))
                 || event.getLevel().isGreaterOrEqual(level)) {
-            return FilterReply.ACCEPT;
+            filterReply = FilterReply.ACCEPT;
         }
-        return FilterReply.DENY;
+        logger.debug("task log filter, thread 
name:{},loggerName:{},filterReply:{}", event.getThreadName(), 
event.getLoggerName(), filterReply.name());
+        return filterReply;
     }
 }
\ No newline at end of file
diff --git 
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/MasterServer.java
 
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/MasterServer.java
index 576fadd..a5d7cf4 100644
--- 
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/MasterServer.java
+++ 
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/MasterServer.java
@@ -41,8 +41,6 @@ import 
org.apache.dolphinscheduler.service.quartz.QuartzExecutors;
 
 import java.util.concurrent.ConcurrentHashMap;
 
-import javax.annotation.PostConstruct;
-
 import org.quartz.SchedulerException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -69,7 +67,6 @@ import 
org.springframework.transaction.annotation.EnableTransactionManagement;
 })
 @EnableTransactionManagement
 public class MasterServer implements IStoppable {
-
     /**
      * logger of MasterServer
      */
diff --git 
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/task/BaseTaskProcessor.java
 
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/task/BaseTaskProcessor.java
index fb14d96..5532477 100644
--- 
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/task/BaseTaskProcessor.java
+++ 
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/task/BaseTaskProcessor.java
@@ -43,6 +43,7 @@ import 
org.apache.dolphinscheduler.service.bean.SpringApplicationContext;
 import org.apache.dolphinscheduler.service.process.ProcessService;
 import org.apache.dolphinscheduler.service.queue.entity.TaskExecutionContext;
 import org.apache.dolphinscheduler.spi.enums.ResourceType;
+import org.apache.dolphinscheduler.spi.task.TaskConstants;
 import org.apache.dolphinscheduler.spi.task.request.DataxTaskExecutionContext;
 import 
org.apache.dolphinscheduler.spi.task.request.ProcedureTaskExecutionContext;
 import org.apache.dolphinscheduler.spi.task.request.SQLTaskExecutionContext;
@@ -67,7 +68,7 @@ import com.google.common.base.Strings;
 
 public abstract class BaseTaskProcessor implements ITaskProcessor {
 
-    protected Logger logger = LoggerFactory.getLogger(getClass());
+    protected final Logger logger = 
LoggerFactory.getLogger(String.format(TaskConstants.TASK_LOG_LOGGER_NAME, 
getClass()));
 
     protected boolean killed = false;
 
diff --git 
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/task/ConditionTaskProcessor.java
 
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/task/ConditionTaskProcessor.java
index b4a6c73..7c593b0 100644
--- 
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/task/ConditionTaskProcessor.java
+++ 
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/task/ConditionTaskProcessor.java
@@ -34,6 +34,7 @@ import org.apache.dolphinscheduler.dao.entity.TaskInstance;
 import org.apache.dolphinscheduler.server.master.config.MasterConfig;
 import org.apache.dolphinscheduler.server.utils.LogUtils;
 import org.apache.dolphinscheduler.service.bean.SpringApplicationContext;
+import org.apache.dolphinscheduler.spi.task.TaskConstants;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -41,6 +42,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
+import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
@@ -48,6 +50,8 @@ import org.slf4j.LoggerFactory;
  */
 public class ConditionTaskProcessor extends BaseTaskProcessor {
 
+    protected static final Logger logger = 
LoggerFactory.getLogger(TaskConstants.TASK_LOG_LOGGER_NAME);
+
     /**
      * dependent parameters
      */
@@ -81,13 +85,12 @@ public class ConditionTaskProcessor extends 
BaseTaskProcessor {
                 taskInstance.getTaskCode(), 
taskInstance.getTaskDefinitionVersion()
         );
 
-        logger = 
LoggerFactory.getLogger(LoggerUtils.buildTaskId(LoggerUtils.TASK_LOGGER_INFO_PREFIX,
+        String threadLoggerInfoName = 
LoggerUtils.buildTaskId(LoggerUtils.TASK_LOGGER_INFO_PREFIX,
                 processInstance.getProcessDefinitionCode(),
                 processInstance.getProcessDefinitionVersion(),
                 taskInstance.getProcessInstanceId(),
-                taskInstance.getId()));
-        String threadLoggerInfoName = 
String.format(Constants.TASK_LOG_INFO_FORMAT, 
processService.formatTaskAppId(this.taskInstance));
-        Thread.currentThread().setName(threadLoggerInfoName);
+                taskInstance.getId());
+        
Thread.currentThread().setName(String.format(TaskConstants.TASK_LOGGER_THREAD_NAME_FORMAT,threadLoggerInfoName));
         initTaskParameters();
         logger.info("dependent task start");
         return true;
diff --git 
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/runner/TaskExecuteThread.java
 
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/runner/TaskExecuteThread.java
index b633a54..0b18dcf 100644
--- 
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/runner/TaskExecuteThread.java
+++ 
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/runner/TaskExecuteThread.java
@@ -17,16 +17,18 @@
 
 package org.apache.dolphinscheduler.server.worker.runner;
 
-import com.github.rholder.retry.RetryException;
-import org.apache.commons.collections.MapUtils;
-import org.apache.commons.lang.StringUtils;
 import org.apache.dolphinscheduler.common.Constants;
-import org.apache.dolphinscheduler.common.enums.CommandType;
 import org.apache.dolphinscheduler.common.enums.Event;
 import org.apache.dolphinscheduler.common.enums.ExecutionStatus;
 import org.apache.dolphinscheduler.common.enums.TaskType;
 import org.apache.dolphinscheduler.common.process.Property;
-import org.apache.dolphinscheduler.common.utils.*;
+import org.apache.dolphinscheduler.common.utils.CommonUtils;
+import org.apache.dolphinscheduler.common.utils.DateUtils;
+import org.apache.dolphinscheduler.common.utils.HadoopUtils;
+import org.apache.dolphinscheduler.common.utils.JSONUtils;
+import org.apache.dolphinscheduler.common.utils.LoggerUtils;
+import org.apache.dolphinscheduler.common.utils.OSUtils;
+import org.apache.dolphinscheduler.common.utils.RetryerUtils;
 import org.apache.dolphinscheduler.remote.command.Command;
 import org.apache.dolphinscheduler.remote.command.TaskExecuteAckCommand;
 import org.apache.dolphinscheduler.remote.command.TaskExecuteResponseCommand;
@@ -39,20 +41,29 @@ import 
org.apache.dolphinscheduler.service.queue.entity.TaskExecutionContext;
 import org.apache.dolphinscheduler.spi.task.AbstractTask;
 import org.apache.dolphinscheduler.spi.task.TaskAlertInfo;
 import org.apache.dolphinscheduler.spi.task.TaskChannel;
+import org.apache.dolphinscheduler.spi.task.TaskConstants;
 import org.apache.dolphinscheduler.spi.task.TaskExecutionContextCacheManager;
 import org.apache.dolphinscheduler.spi.task.request.TaskRequest;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+
+import org.apache.commons.collections.MapUtils;
+import org.apache.commons.lang.StringUtils;
 
 import java.io.File;
 import java.io.IOException;
-import java.util.*;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.Delayed;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
-import static java.util.Calendar.DAY_OF_MONTH;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.github.rholder.retry.RetryException;
 
 /**
  * task scheduler thread
@@ -162,6 +173,9 @@ public class TaskExecuteThread implements Runnable, Delayed 
{
                     taskExecutionContext.getTaskInstanceId());
             taskRequest.setTaskLogName(taskLogName);
 
+            // set the name of the current thread
+            
Thread.currentThread().setName(String.format(TaskConstants.TASK_LOGGER_THREAD_NAME_FORMAT,taskLogName));
+
             task = taskChannel.createTask(taskRequest);
 
             // task init
diff --git 
a/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/log/TaskLogDiscriminatorTest.java
 
b/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/log/TaskLogDiscriminatorTest.java
index 1908475..13232c3 100644
--- 
a/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/log/TaskLogDiscriminatorTest.java
+++ 
b/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/log/TaskLogDiscriminatorTest.java
@@ -16,16 +16,19 @@
  */
 package org.apache.dolphinscheduler.server.log;
 
-import ch.qos.logback.classic.Level;
-import ch.qos.logback.classic.spi.ILoggingEvent;
-import ch.qos.logback.classic.spi.IThrowableProxy;
-import ch.qos.logback.classic.spi.LoggerContextVO;
+import org.apache.dolphinscheduler.spi.task.TaskConstants;
+
+import java.util.Map;
+
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.slf4j.Marker;
 
-import java.util.Map;
+import ch.qos.logback.classic.Level;
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import ch.qos.logback.classic.spi.IThrowableProxy;
+import ch.qos.logback.classic.spi.LoggerContextVO;
 
 public class TaskLogDiscriminatorTest {
 
@@ -48,7 +51,7 @@ public class TaskLogDiscriminatorTest {
        String result = taskLogDiscriminator.getDiscriminatingValue(new 
ILoggingEvent() {
             @Override
             public String getThreadName() {
-                return null;
+                return 
String.format(TaskConstants.TASK_LOGGER_THREAD_NAME_FORMAT,"-[taskAppId=TASK-1-1-1");
             }
 
             @Override
@@ -73,7 +76,7 @@ public class TaskLogDiscriminatorTest {
 
             @Override
             public String getLoggerName() {
-                return "[taskAppId=TASK-1-1-1";
+                return TaskConstants.TASK_LOG_LOGGER_NAME;
             }
 
             @Override
diff --git 
a/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/log/TaskLogFilterTest.java
 
b/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/log/TaskLogFilterTest.java
index d8abb48..78ebae6 100644
--- 
a/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/log/TaskLogFilterTest.java
+++ 
b/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/log/TaskLogFilterTest.java
@@ -16,17 +16,19 @@
  */
 package org.apache.dolphinscheduler.server.log;
 
+import org.apache.dolphinscheduler.spi.task.TaskConstants;
+
+import java.util.Map;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.slf4j.Marker;
+
 import ch.qos.logback.classic.Level;
 import ch.qos.logback.classic.spi.ILoggingEvent;
 import ch.qos.logback.classic.spi.IThrowableProxy;
 import ch.qos.logback.classic.spi.LoggerContextVO;
 import ch.qos.logback.core.spi.FilterReply;
-import org.apache.dolphinscheduler.common.utils.LoggerUtils;
-import org.junit.Assert;
-import org.junit.Test;
-import org.slf4j.Marker;
-
-import java.util.Map;
 
 
 public class TaskLogFilterTest {
@@ -39,7 +41,7 @@ public class TaskLogFilterTest {
         FilterReply filterReply = taskLogFilter.decide(new ILoggingEvent() {
             @Override
             public String getThreadName() {
-                return LoggerUtils.TASK_LOGGER_THREAD_NAME;
+                return TaskConstants.TASK_LOGGER_THREAD_NAME;
             }
 
             @Override
@@ -64,7 +66,7 @@ public class TaskLogFilterTest {
 
             @Override
             public String getLoggerName() {
-                return null;
+                return TaskConstants.TASK_LOG_LOGGER_NAME;
             }
 
             @Override
diff --git 
a/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/worker/processor/TaskExecuteProcessorTest.java
 
b/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/worker/processor/TaskExecuteProcessorTest.java
index daee652..559bd6d 100644
--- 
a/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/worker/processor/TaskExecuteProcessorTest.java
+++ 
b/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/worker/processor/TaskExecuteProcessorTest.java
@@ -22,7 +22,6 @@ import org.apache.dolphinscheduler.common.enums.TaskType;
 import org.apache.dolphinscheduler.common.thread.ThreadUtils;
 import org.apache.dolphinscheduler.common.utils.FileUtils;
 import org.apache.dolphinscheduler.common.utils.JSONUtils;
-import org.apache.dolphinscheduler.common.utils.LoggerUtils;
 import org.apache.dolphinscheduler.remote.command.Command;
 import org.apache.dolphinscheduler.remote.command.CommandType;
 import org.apache.dolphinscheduler.remote.command.TaskExecuteAckCommand;
@@ -49,7 +48,6 @@ import org.powermock.api.mockito.PowerMockito;
 import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.modules.junit4.PowerMockRunner;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * test task execute processor
@@ -107,12 +105,6 @@ public class TaskExecuteProcessorTest {
         PowerMockito.when(SpringApplicationContext.getBean(WorkerConfig.class))
                 .thenReturn(workerConfig);
 
-        Logger taskLogger = 
LoggerFactory.getLogger(LoggerUtils.buildTaskId(LoggerUtils.TASK_LOGGER_INFO_PREFIX,
-                taskExecutionContext.getProcessDefineCode(),
-                taskExecutionContext.getProcessDefineVersion(),
-                taskExecutionContext.getProcessInstanceId(),
-                taskExecutionContext.getTaskInstanceId()));
-
         workerManager = PowerMockito.mock(WorkerManagerThread.class);
         PowerMockito.when(workerManager.offer(new 
TaskExecuteThread(taskExecutionContext, taskCallbackService, 
alertClientService))).thenReturn(Boolean.TRUE);
 
diff --git 
a/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/task/TaskConstants.java
 
b/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/task/TaskConstants.java
index 5ec6342..ed1f823 100644
--- 
a/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/task/TaskConstants.java
+++ 
b/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/task/TaskConstants.java
@@ -124,9 +124,24 @@ public class TaskConstants {
     public static final String RWXR_XR_X = "rwxr-xr-x";
 
     /**
-     * task log info format
+     * Task Logger Thread's name
+     */
+    public static final String TASK_LOGGER_THREAD_NAME = "TaskLogInfo";
+
+    /**
+     * task logger thread name format
+     */
+    public static final String TASK_LOGGER_THREAD_NAME_FORMAT = 
TASK_LOGGER_THREAD_NAME + "-%s";
+
+    /**
+     * task log logger name
      */
-    public static final String TASK_LOG_INFO_FORMAT = "TaskLogInfo-%s";
+    public static final String TASK_LOG_LOGGER_NAME = "TaskLogLogger";
+
+    /**
+     * task log logger name format
+     */
+    public static final String TASK_LOG_LOGGER_NAME_FORMAT = 
TASK_LOG_LOGGER_NAME + "-%s";
 
     /**
      * date format of yyyyMMdd
@@ -320,10 +335,7 @@ public class TaskConstants {
      */
     public static final String HADOOP_SECURITY_AUTHENTICATION_STARTUP_STATE = 
"hadoop.security.authentication.startup.state";
 
-    /**
-     * Task Logger Thread's name
-     */
-    public static final String TASK_LOGGER_THREAD_NAME = "TaskLogInfo";
+    public static final String GET_OUTPUT_LOG_SERVICE = "-getOutputLogService";
 
     /**
      * hdfs/s3 configuration
diff --git 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/AbstractCommandExecutor.java
 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/AbstractCommandExecutor.java
index 418bf1a..805d035 100644
--- 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/AbstractCommandExecutor.java
+++ 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/AbstractCommandExecutor.java
@@ -307,8 +307,9 @@ public abstract class AbstractCommandExecutor {
      * @param process process
      */
     private void parseProcessOutput(Process process) {
-        String threadLoggerInfoName = 
String.format(TaskConstants.TASK_LOGGER_THREAD_NAME + "-%s", 
taskRequest.getTaskAppId());
-        ExecutorService getOutputLogService = 
newDaemonSingleThreadExecutor(threadLoggerInfoName + "-" + 
"getOutputLogService");
+        String threadLoggerInfoName = 
String.format(TaskConstants.TASK_LOGGER_THREAD_NAME_FORMAT,
+                taskRequest.getTaskLogName() + 
TaskConstants.GET_OUTPUT_LOG_SERVICE);
+        ExecutorService getOutputLogService = 
newDaemonSingleThreadExecutor(threadLoggerInfoName);
         getOutputLogService.submit(() -> {
             try (BufferedReader inReader = new BufferedReader(new 
InputStreamReader(process.getInputStream()))) {
                 String line;
diff --git 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/AbstractTaskExecutor.java
 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/AbstractTaskExecutor.java
index e572418..5b5661c 100644
--- 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/AbstractTaskExecutor.java
+++ 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/AbstractTaskExecutor.java
@@ -18,6 +18,7 @@
 package org.apache.dolphinscheduler.plugin.task.api;
 
 import org.apache.dolphinscheduler.spi.task.AbstractTask;
+import org.apache.dolphinscheduler.spi.task.TaskConstants;
 import org.apache.dolphinscheduler.spi.task.request.TaskRequest;
 
 import java.util.StringJoiner;
@@ -32,7 +33,7 @@ public abstract class AbstractTaskExecutor extends 
AbstractTask {
 
     public static final Marker FINALIZE_SESSION_MARKER = 
MarkerFactory.getMarker("FINALIZE_SESSION");
 
-    protected Logger logger;
+    protected final Logger logger = 
LoggerFactory.getLogger(String.format(TaskConstants.TASK_LOG_LOGGER_NAME_FORMAT,
 getClass()));
 
     /**
      * constructor
@@ -41,7 +42,6 @@ public abstract class AbstractTaskExecutor extends 
AbstractTask {
      */
     protected AbstractTaskExecutor(TaskRequest taskRequest) {
         super(taskRequest);
-        logger = LoggerFactory.getLogger(taskRequest.getTaskLogName());
     }
 
     /**
diff --git 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-datax/src/main/java/org/apache/dolphinscheduler/plugin/task/datax/DataxTask.java
 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-datax/src/main/java/org/apache/dolphinscheduler/plugin/task/datax/DataxTask.java
index 3fbabe5..216ad74 100644
--- 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-datax/src/main/java/org/apache/dolphinscheduler/plugin/task/datax/DataxTask.java
+++ 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-datax/src/main/java/org/apache/dolphinscheduler/plugin/task/datax/DataxTask.java
@@ -145,9 +145,6 @@ public class DataxTask extends AbstractTaskExecutor {
     @Override
     public void handle() throws Exception {
         try {
-            // set the name of the current thread
-            String threadLoggerInfoName = String.format("TaskLogInfo-%s", 
taskExecutionContext.getTaskAppId());
-            Thread.currentThread().setName(threadLoggerInfoName);
 
             // replace placeholder,and combine local and global parameters
             Map<String, Property> paramsMap = 
ParamUtils.convert(taskExecutionContext, getParameters());
diff --git 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpTask.java
 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpTask.java
index f57238d..04978f0 100644
--- 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpTask.java
+++ 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-http/src/main/java/org/apache/dolphinscheduler/plugin/task/http/HttpTask.java
@@ -18,7 +18,6 @@
 package org.apache.dolphinscheduler.plugin.task.http;
 
 import static 
org.apache.dolphinscheduler.plugin.task.http.HttpTaskConstants.APPLICATION_JSON;
-import static 
org.apache.dolphinscheduler.spi.task.TaskConstants.TASK_LOG_INFO_FORMAT;
 
 import org.apache.dolphinscheduler.plugin.task.api.AbstractTaskExecutor;
 import org.apache.dolphinscheduler.plugin.task.util.MapUtils;
@@ -92,9 +91,6 @@ public class HttpTask extends AbstractTaskExecutor {
     @Override
     public void handle() throws Exception {
 
-        String threadLoggerInfoName = String.format(TASK_LOG_INFO_FORMAT, 
taskExecutionContext.getTaskAppId());
-        Thread.currentThread().setName(threadLoggerInfoName);
-
         long startTime = System.currentTimeMillis();
         String formatTimeStamp = DateUtils.formatTimeStamp(startTime);
         String statusCode = null;
diff --git 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-procedure/src/main/java/org/apache/dolphinscheduler/plugin/task/procedure/ProcedureTask.java
 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-procedure/src/main/java/org/apache/dolphinscheduler/plugin/task/procedure/ProcedureTask.java
index 58d597f..202b75d 100644
--- 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-procedure/src/main/java/org/apache/dolphinscheduler/plugin/task/procedure/ProcedureTask.java
+++ 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-procedure/src/main/java/org/apache/dolphinscheduler/plugin/task/procedure/ProcedureTask.java
@@ -19,7 +19,6 @@ package org.apache.dolphinscheduler.plugin.task.procedure;
 
 import static 
org.apache.dolphinscheduler.spi.task.TaskConstants.EXIT_CODE_FAILURE;
 import static 
org.apache.dolphinscheduler.spi.task.TaskConstants.EXIT_CODE_SUCCESS;
-import static 
org.apache.dolphinscheduler.spi.task.TaskConstants.TASK_LOG_INFO_FORMAT;
 
 import 
org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
 import org.apache.dolphinscheduler.plugin.datasource.api.utils.DatasourceUtil;
@@ -85,9 +84,6 @@ public class ProcedureTask extends AbstractTaskExecutor {
 
     @Override
     public void handle() throws Exception {
-        // set the name of the current thread
-        String threadLoggerInfoName = String.format(TASK_LOG_INFO_FORMAT, 
taskExecutionContext.getTaskAppId());
-        Thread.currentThread().setName(threadLoggerInfoName);
 
         logger.info("procedure type : {}, datasource : {}, method : {} , 
localParams : {}",
                 procedureParameters.getType(),
diff --git 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-sql/src/main/java/org/apache/dolphinscheduler/plugin/task/sql/SqlTask.java
 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-sql/src/main/java/org/apache/dolphinscheduler/plugin/task/sql/SqlTask.java
index 1ec5a2c..d8bae7a 100644
--- 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-sql/src/main/java/org/apache/dolphinscheduler/plugin/task/sql/SqlTask.java
+++ 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-sql/src/main/java/org/apache/dolphinscheduler/plugin/task/sql/SqlTask.java
@@ -114,9 +114,6 @@ public class SqlTask extends AbstractTaskExecutor {
 
     @Override
     public void handle() throws Exception {
-        // set the name of the current thread
-        String threadLoggerInfoName = 
String.format(TaskConstants.TASK_LOG_INFO_FORMAT, 
taskExecutionContext.getTaskAppId());
-        Thread.currentThread().setName(threadLoggerInfoName);
 
         logger.info("Full sql parameters: {}", sqlParameters);
         logger.info("sql type : {}, datasource : {}, sql : {} , localParams : 
{},udfs : {},showType : {},connParams : {},varPool : {} ,query max result limit 
 {}",

Reply via email to