/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package models.datatable; import java.net.URI; import java.util.Collections; import java.util.List; import util.TaskUtils; import util.datatable.DataTable; import com.emc.vipr.model.sys.logging.LogMessage; import com.google.common.collect.Lists; public class TaskLogsDataTable extends DataTable { public TaskLogsDataTable() { addColumn("timeMillis").hidden().setSearchable(false); addColumn("time").setRenderFunction("renderTime"); addColumn("severity").setRenderFunction("renderSeverity"); addColumn("message").setRenderFunction("renderMessage"); addColumn("service"); setDefaultSort("time_ms", "desc"); sortAllExcept("message"); } public static List<Log> fetch(URI taskId) { if (taskId == null) { return Collections.EMPTY_LIST; } List<LogMessage> logMessages = TaskUtils.getTaskLogs(taskId); List<Log> logs = Lists.newArrayList(); if (logMessages != null) { for (LogMessage logMessage : logMessages) { logs.add(new Log(logMessage)); } } return logs; } public static class Log { public Long timeMillis; public String severity; public String message; public String service; public String thread; public String node_id; public String node_name; public String line; public String clazz; public Log(LogMessage logMessage) { timeMillis = logMessage.getTimeMS(); thread = logMessage.getThread(); node_id = logMessage.getNodeId(); node_name = logMessage.getNodeName(); line = logMessage.getLineNumber(); if (logMessage.getClass() != null) { clazz = logMessage.getClass().toString(); } if (logMessage.getSeverity() != null) { severity = logMessage.getSeverity().toString(); } message = logMessage.getMessage(); service = logMessage.getSvcName(); } } }