List of usage examples for org.apache.commons.io.input ReversedLinesFileReader ReversedLinesFileReader
public ReversedLinesFileReader(final File file) throws IOException
From source file:org.jumpmind.metl.ui.views.admin.LoggingPanel.java
@Override @SuppressWarnings("unchecked") public Object onBackgroundDataRefresh() { StringBuilder builder = null; if (logFile != null && logFile.exists() && autoRefreshOn.getValue()) { try {//from w w w . ja va 2 s . c o m builder = new StringBuilder(); Pattern pattern = Pattern.compile("^\\d\\d\\d\\d-\\d\\d-\\d\\d \\d\\d:\\d\\d:\\d\\d,\\d\\d\\d .*"); String filterValue = filter.getValue(); boolean isFiltering = !StringUtils.isBlank(filterValue); Pattern filter = Pattern.compile("(.*)(" + filterValue + ")(.*)"); ReversedLinesFileReader reader = new ReversedLinesFileReader(logFile); try { int lines = Integer.parseInt(bufferSize.getValue()); int counter = 0; String line = null; do { if (!isFiltering) { line = StringEscapeUtils.escapeHtml(reader.readLine()); } else { StringBuilder multiLine = new StringBuilder(); while ((line = StringEscapeUtils.escapeHtml(reader.readLine())) != null) { if (pattern.matcher(line).matches()) { multiLine.insert(0, line); line = multiLine.toString(); break; } else { multiLine.insert(0, line + "<br/>"); counter++; } } } if (line != null) { boolean showLine = !isFiltering; if (isFiltering) { Matcher matcher = filter.matcher(line); if (showLine = matcher.matches()) { line = matcher.replaceAll("$1<font color='red'>$2</font>$3"); } } if (showLine) { builder.insert(0, line + "<br/>"); counter++; } } } while (line != null && counter < lines); } finally { if (reader != null) { reader.close(); } } } catch (Exception e) { throw new RuntimeException(e); } } return builder; }
From source file:org.nuxeo.logs.viewer.LogsViewerActions.java
public List<LogLine> getInitialLogLines() throws IOException { if (initialLogLines == null) { initialLogLines = new ArrayList<>(); String selectedLogFile = getSelectedLogFile(); if (selectedLogFile != null) { File logFile = new File(selectedLogFile); if (logFile.exists()) { try (ReversedLinesFileReader reversedLinesFileReader = new ReversedLinesFileReader( new File(getSelectedLogFile()))) { for (int i = 0; i < getLogMaxLinesCount(); i++) { String line = reversedLinesFileReader.readLine(); if (line != null) { initialLogLines.add(0, new LogLine(line)); } else { break; }//from w w w . ja v a 2s .co m } } bytesRead = logFile.length(); selectedLogFileLastModified = logFile.lastModified(); } } } return initialLogLines; }