This is an automated email from the ASF dual-hosted git repository.
journey pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-dolphinscheduler.git
The following commit(s) were added to refs/heads/dev by this push:
new 07c8193 [Feature-2930][api] Displays path and host on the instance
log panel. #2930 (#3154)
07c8193 is described below
commit 07c8193bb579d4febd330cbec71eafb2e2b0102a
Author: t1mon <[email protected]>
AuthorDate: Thu Jul 23 10:57:56 2020 +0800
[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.
---
.../api/service/LoggerService.java | 48 +++++++++++++++-------
.../apache/dolphinscheduler/common/Constants.java | 5 +++
2 files changed, 38 insertions(+), 15 deletions(-)
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/LoggerService.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/LoggerService.java
index 2f44dee..3c7b421 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/LoggerService.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/LoggerService.java
@@ -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,17 +40,19 @@ 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;
private final LogClientService logClient;
- public LoggerService(){
+ public LoggerService() {
logClient = new LogClientService();
}
@PreDestroy
- public void close(){
+ public void close() {
logClient.close();
}
@@ -65,24 +68,34 @@ 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());
+ if (taskInstance == null || StringUtils.isBlank(taskInstance.getHost())) {
+ 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);
+
+ 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));
- String log = logClient.rollViewLog(host, Constants.RPC_PORT,
taskInstance.getLogPath(),skipLineNum,limit);
result.setData(log);
return result;
}
-
-
/**
* get log size
*
@@ -91,22 +104,27 @@ public class LoggerService {
*/
public byte[] getLogBytes(int taskInstId) {
TaskInstance taskInstance =
processService.findTaskInstanceById(taskInstId);
- if (taskInstance == null || StringUtils.isBlank(taskInstance.getHost())){
+ if (taskInstance == null || StringUtils.isBlank(taskInstance.getHost())) {
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
*/
- private String getHost(String address){
- if (Host.isOldVersion(address)){
+ private String getHost(String address) {
+ if (Host.isOldVersion(address)) {
return address;
}
return Host.of(address).getIp();
diff --git
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java
index 57491c9..f2494a6 100644
---
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java
+++
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java
@@ -979,6 +979,11 @@ public final class Constants {
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
*/
public static final String DOLPHIN_SCHEDULER_PREFERRED_NETWORK_INTERFACE =
"dolphin.scheduler.network.interface.preferred";