Example usage for org.apache.commons.io.input ReversedLinesFileReader ReversedLinesFileReader

List of usage examples for org.apache.commons.io.input ReversedLinesFileReader ReversedLinesFileReader

Introduction

In this page you can find the example usage for org.apache.commons.io.input ReversedLinesFileReader ReversedLinesFileReader.

Prototype

public ReversedLinesFileReader(final File file) throws IOException 

Source Link

Document

Creates a ReversedLinesFileReader with default block size of 4KB and the platform's default encoding.

Usage

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;
}