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 api调用日志事件 * @date 2016-11-14 10:17:08 */ public class ApiLog extends EventLog { // 具体请求api的账户 private String account; /** * 不可主动new */ private ApiLog() { } public static ApiLog buildApiLog(EventType eventType, String uniqueName, String account, long cost, String status, String log) { ApiLog apiLog = new ApiLog(); apiLog.setEventType(eventType); apiLog.setUniqueName(uniqueName); apiLog.setCost(cost); apiLog.setStatus(status); apiLog.setLog(log); apiLog.setAccount(account); return apiLog; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(this.eventType.symbol()); sb.append(Constants.VERTICAL_LINE); sb.append(this.uniqueName); sb.append(Constants.VERTICAL_LINE); sb.append(this.account); sb.append(Constants.VERTICAL_LINE); sb.append(this.cost); sb.append(Constants.VERTICAL_LINE); sb.append(this.status); sb.append(Constants.VERTICAL_LINE); sb.append(this.log); return sb.toString(); } /** * 根据字符串解析成EventLog * @param line * @return */ public static ApiLog parseEventLog(String line) { String[] detail = line.split(Constants.VERTICAL_LINE_SPLIT); return buildApiLog(EventType.valueOf(detail[0]), detail[1], detail[2], Long.parseLong(detail[3]), detail[4], detail[5]); } public String getAccount() { return account; } public void setAccount(String account) { this.account = account; } }