%@ page contentType="text/html; charset=UTF-8" import="javax.servlet.*" import="javax.servlet.http.*" import="java.io.*" %> <% long logOffset = -1, logLength = -1; boolean tailLog = false; long tailSize = 1024; int tailWindow = 1; boolean entireLog = false; String taskId = request.getParameter("taskid"); if (taskId == null) { out.println("
<% boolean gotRequiredData = true; try { TaskLog.Reader taskLogReader = new TaskLog.Reader(taskId); byte[] b = null; int bytesRead = 0; int targetLength = 0; if (entireLog) { b = taskLogReader.fetchAll(); targetLength = bytesRead = b.length; } else { if (tailLog) { b = new byte[(int)tailSize]; targetLength = (int)tailSize; bytesRead = taskLogReader.tail(b, 0, b.length, tailSize, tailWindow); } else { b = new byte[(int)logLength]; targetLength = (int)logLength; bytesRead = taskLogReader.read(b, 0, b.length, logOffset, logLength); } } if (bytesRead != targetLength && targetLength <= taskLogReader.getTotalLogSize()) { out.println("Warning: Could not fetch " + targetLength + " bytes from the task-logs; probably purged!<% if (!entireLog) { if (tailLog) { if (gotRequiredData) { out.println("Earlier"); } if (tailWindow > 1) { out.println("Later"); } } else { if (gotRequiredData) { out.println("Earlier"); } out.println("Later"); } } %>
"); gotRequiredData = false; } String logData = new String(b, 0, bytesRead); out.println(logData); } catch (IOException ioe) { out.println("Failed to retrieve logs for task: " + taskId); } %>