* 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.
This commit is contained in:
parent
1814e22bb3
commit
07c8193bb5
|
|
@ -16,6 +16,9 @@
|
||||||
*/
|
*/
|
||||||
package org.apache.dolphinscheduler.api.service;
|
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.enums.Status;
|
||||||
import org.apache.dolphinscheduler.api.utils.Result;
|
import org.apache.dolphinscheduler.api.utils.Result;
|
||||||
import org.apache.dolphinscheduler.common.Constants;
|
import org.apache.dolphinscheduler.common.Constants;
|
||||||
|
|
@ -29,8 +32,6 @@ import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.PreDestroy;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* log service
|
* log service
|
||||||
*/
|
*/
|
||||||
|
|
@ -39,17 +40,19 @@ public class LoggerService {
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(LoggerService.class);
|
private static final Logger logger = LoggerFactory.getLogger(LoggerService.class);
|
||||||
|
|
||||||
|
private static final String LOG_HEAD_FORMAT = "[LOG-PATH]: %s, [HOST]: %s%s";
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ProcessService processService;
|
private ProcessService processService;
|
||||||
|
|
||||||
private final LogClientService logClient;
|
private final LogClientService logClient;
|
||||||
|
|
||||||
public LoggerService(){
|
public LoggerService() {
|
||||||
logClient = new LogClientService();
|
logClient = new LogClientService();
|
||||||
}
|
}
|
||||||
|
|
||||||
@PreDestroy
|
@PreDestroy
|
||||||
public void close(){
|
public void close() {
|
||||||
logClient.close();
|
logClient.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -65,24 +68,34 @@ public class LoggerService {
|
||||||
|
|
||||||
TaskInstance taskInstance = processService.findTaskInstanceById(taskInstId);
|
TaskInstance taskInstance = processService.findTaskInstanceById(taskInstId);
|
||||||
|
|
||||||
if (taskInstance == null || StringUtils.isBlank(taskInstance.getHost())){
|
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());
|
String host = getHost(taskInstance.getHost());
|
||||||
|
|
||||||
Result result = new Result(Status.SUCCESS.getCode(), Status.SUCCESS.getMsg());
|
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);
|
result.setData(log);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get log size
|
* get log size
|
||||||
*
|
*
|
||||||
|
|
@ -91,22 +104,27 @@ public class LoggerService {
|
||||||
*/
|
*/
|
||||||
public byte[] getLogBytes(int taskInstId) {
|
public byte[] getLogBytes(int taskInstId) {
|
||||||
TaskInstance taskInstance = processService.findTaskInstanceById(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");
|
throw new RuntimeException("task instance is null or host is null");
|
||||||
}
|
}
|
||||||
String host = getHost(taskInstance.getHost());
|
String host = getHost(taskInstance.getHost());
|
||||||
|
byte[] head = String.format(LOG_HEAD_FORMAT,
|
||||||
return logClient.getLogBytes(host, Constants.RPC_PORT, taskInstance.getLogPath());
|
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
|
* get host
|
||||||
|
*
|
||||||
* @param address address
|
* @param address address
|
||||||
* @return old version return true ,otherwise return false
|
* @return old version return true ,otherwise return false
|
||||||
*/
|
*/
|
||||||
private String getHost(String address){
|
private String getHost(String address) {
|
||||||
if (Host.isOldVersion(address)){
|
if (Host.isOldVersion(address)) {
|
||||||
return address;
|
return address;
|
||||||
}
|
}
|
||||||
return Host.of(address).getIp();
|
return Host.of(address).getIp();
|
||||||
|
|
|
||||||
|
|
@ -978,6 +978,11 @@ public final class Constants {
|
||||||
public static final int NORAML_NODE_STATUS = 0;
|
public static final int NORAML_NODE_STATUS = 0;
|
||||||
public static final int ABNORMAL_NODE_STATUS = 1;
|
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
|
* net system properties
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue