package com.jthink.skyeye.base.dto;
import com.jthink.skyeye.base.constant.Constants;
import com.jthink.skyeye.base.constant.EventType;
/**
* JThink@JThink
*
* @author JThink
* @version 0.0.1
* @desc rpc trace跟踪的日志dto
* @date 2017-02-15 15:02:57
*/
public class RpcTraceLog {
// 日志事件类型
private EventType eventType;
// 具体的span日志内容
private String log;
/**
* 不可主动new
*/
private RpcTraceLog() {
}
public static RpcTraceLog buildRpcTraceLog(EventType eventType, String log) {
RpcTraceLog rpcTraceLog = new RpcTraceLog();
rpcTraceLog.setEventType(eventType);
rpcTraceLog.setLog(log);
return rpcTraceLog;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(this.eventType.symbol());
sb.append(Constants.VERTICAL_LINE);
sb.append(this.log);
return sb.toString();
}
/**
* 根据字符串解析成RpcTraceLog
* @param line
* @return
*/
public static RpcTraceLog parseRpcTraceLog(String line) {
String[] detail = line.split(Constants.VERTICAL_LINE_SPLIT);
return buildRpcTraceLog(EventType.valueOf(detail[0]), detail[1]);
}
public EventType getEventType() {
return eventType;
}
public void setEventType(EventType eventType) {
this.eventType = eventType;
}
public String getLog() {
return log;
}
public void setLog(String log) {
this.log = log;
}
}