Unverified Commit 07c8193b authored by t1mon's avatar t1mon Committed by GitHub
Browse files

[Feature-2930][api] Displays path and host on the instance log panel. #2930 (#3154)

* Optimize PropertyUtils instantiation.

* Fix info error.

* [Feature-2930][api] Displays path and host on the instance log panel. #2930

* [update] Add log-head in download log.

* [update] clear code smell.
parent 1814e22b
Loading
Loading
Loading
Loading
+33 −15
Original line number Diff line number Diff line
@@ -16,6 +16,9 @@
 */
package org.apache.dolphinscheduler.api.service;

import java.nio.charset.StandardCharsets;
import javax.annotation.PreDestroy;
import org.apache.commons.lang.ArrayUtils;
import org.apache.dolphinscheduler.api.enums.Status;
import org.apache.dolphinscheduler.api.utils.Result;
import org.apache.dolphinscheduler.common.Constants;
@@ -29,8 +32,6 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.annotation.PreDestroy;

/**
 * log service
 */
@@ -39,6 +40,8 @@ public class LoggerService {

  private static final Logger logger = LoggerFactory.getLogger(LoggerService.class);

  private static final String LOG_HEAD_FORMAT = "[LOG-PATH]: %s, [HOST]:  %s%s";

  @Autowired
  private ProcessService processService;

@@ -66,21 +69,31 @@ public class LoggerService {
    TaskInstance taskInstance = processService.findTaskInstanceById(taskInstId);

    if (taskInstance == null || StringUtils.isBlank(taskInstance.getHost())) {
      return new Result(Status.TASK_INSTANCE_NOT_FOUND.getCode(), Status.TASK_INSTANCE_NOT_FOUND.getMsg());
      return Result.error(Status.TASK_INSTANCE_NOT_FOUND);
    }

    String host = getHost(taskInstance.getHost());

    Result result = new Result(Status.SUCCESS.getCode(), Status.SUCCESS.getMsg());

    logger.info("log host : {} , logPath : {} , logServer port : {}",host,taskInstance.getLogPath(),Constants.RPC_PORT);
    logger.info("log host : {} , logPath : {} , logServer port : {}", host, taskInstance.getLogPath(),
            Constants.RPC_PORT);

    String log = logClient.rollViewLog(host, Constants.RPC_PORT, taskInstance.getLogPath(),skipLineNum,limit);
    result.setData(log);
    return result;
    StringBuilder log = new StringBuilder();
    if (skipLineNum == 0) {
      String head = String.format(LOG_HEAD_FORMAT,
          taskInstance.getLogPath(),
          host,
          Constants.SYSTEM_LINE_SEPARATOR);
      log.append(head);
    }

    log.append(logClient
        .rollViewLog(host, Constants.RPC_PORT, taskInstance.getLogPath(), skipLineNum, limit));

    result.setData(log);
    return result;
  }


  /**
@@ -95,13 +108,18 @@ public class LoggerService {
      throw new RuntimeException("task instance is null or host is null");
    }
    String host = getHost(taskInstance.getHost());

    return logClient.getLogBytes(host, Constants.RPC_PORT, taskInstance.getLogPath());
    byte[] head = String.format(LOG_HEAD_FORMAT,
        taskInstance.getLogPath(),
        host,
        Constants.SYSTEM_LINE_SEPARATOR).getBytes(StandardCharsets.UTF_8);
    return ArrayUtils.addAll(head,
        logClient.getLogBytes(host, Constants.RPC_PORT, taskInstance.getLogPath()));
  }


  /**
   * get host
   *
   * @param address address
   * @return old version return true ,otherwise return false
   */
+5 −0
Original line number Diff line number Diff line
@@ -978,6 +978,11 @@ public final class Constants {
    public static final int NORAML_NODE_STATUS = 0;
    public static final int ABNORMAL_NODE_STATUS = 1;

    /**
     * system line separator
     */
    public static final String SYSTEM_LINE_SEPARATOR = System.getProperty("line.separator");

    /**
     * net system properties
     */