Console: Flip order of router logs

This commit is contained in:
zzz
2019-02-23 18:02:00 +00:00
parent 32797dd415
commit b76b2ef206
2 changed files with 18 additions and 14 deletions

View File

@ -114,28 +114,28 @@ public class LogsHelper extends HelperBase {
return "Undefined"; return "Undefined";
} }
/***** unused
public String getConnectionLogs() {
return formatMessages(_context.commSystem().getMostRecentErrorMessages());
}
******/
private final static String NL = System.getProperty("line.separator"); private final static String NL = System.getProperty("line.separator");
/** formats in reverse order */ /** formats in forward order */
private String formatMessages(List<String> msgs) { private String formatMessages(List<String> msgs) {
if (msgs.isEmpty()) if (msgs.isEmpty())
return "</td></tr><tr><td><p><i>" + _t("No log messages") + "</i></p>"; return "</td></tr><tr><td><p><i>" + _t("No log messages") + "</i></p>";
boolean colorize = _context.getBooleanPropertyDefaultTrue("routerconsole.logs.color"); boolean colorize = _context.getBooleanPropertyDefaultTrue("routerconsole.logs.color");
StringBuilder buf = new StringBuilder(16*1024); StringBuilder buf = new StringBuilder(16*1024);
buf.append("</td></tr><tr><td><ul>"); buf.append("</td></tr><tr><td><ul>");
for (int i = msgs.size() - 1; i >= 0; i--) { // newest first
// for (int i = msgs.size() - 1; i >= 0; i--) {
// oldest first
for (int i = 0; i < msgs.size(); i++) {
String msg = msgs.get(i); String msg = msgs.get(i);
// don't display the dup message if it is last // don't display the dup message if it is last
if (i == 0 && msg.contains("&darr;")) //if (i == 0 && msg.contains("&darr;"))
// don't display the dup message if it is first
if (i == 0 && msg.contains("&uarr;"))
break; break;
msg = msg.replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;"); msg = msg.replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;");
msg = msg.replace("&amp;darr;", "&darr;"); // hack - undo the damage (LogWriter) //msg = msg.replace("&amp;darr;", "&darr;"); // hack - undo the damage (LogWriter)
msg = msg.replace("&amp;uarr;", "&uarr;"); // hack - undo the damage (LogWriter)
// remove last \n that LogRecordFormatter added // remove last \n that LogRecordFormatter added
if (msg.endsWith(NL)) if (msg.endsWith(NL))
msg = msg.substring(0, msg.length() - NL.length()); msg = msg.substring(0, msg.length() - NL.length());

View File

@ -24,6 +24,8 @@ abstract class LogWriter implements Runnable {
final static long FLUSH_INTERVAL = 29 * 1000; final static long FLUSH_INTERVAL = 29 * 1000;
private final static long MIN_FLUSH_INTERVAL = 2*1000; private final static long MIN_FLUSH_INTERVAL = 2*1000;
private final static long MAX_FLUSH_INTERVAL = 5*60*1000; private final static long MAX_FLUSH_INTERVAL = 5*60*1000;
// true for newest first on /logs page; false for oldest first
private static final boolean BUFFER_DISPLAYED_REVERSE = false;
private long _lastReadConfig; private long _lastReadConfig;
protected final LogManager _manager; protected final LogManager _manager;
@ -137,11 +139,11 @@ abstract class LogWriter implements Runnable {
* @since 0.9.21 * @since 0.9.21
*/ */
private void writeDupMessage(int dupCount, LogRecord lastRecord) { private void writeDupMessage(int dupCount, LogRecord lastRecord) {
String dmsg = dupMessage(dupCount, lastRecord, false); String dmsg = dupMessage(dupCount, lastRecord, false, false);
writeRecord(lastRecord.getPriority(), dmsg); writeRecord(lastRecord.getPriority(), dmsg);
if (_manager.getDisplayOnScreenLevel() <= lastRecord.getPriority() && _manager.displayOnScreen()) if (_manager.getDisplayOnScreenLevel() <= lastRecord.getPriority() && _manager.displayOnScreen())
System.out.print(dmsg); System.out.print(dmsg);
dmsg = dupMessage(dupCount, lastRecord, true); dmsg = dupMessage(dupCount, lastRecord, BUFFER_DISPLAYED_REVERSE, true);
_manager.getBuffer().add(dmsg); _manager.getBuffer().add(dmsg);
if (lastRecord.getPriority() >= Log.CRIT) if (lastRecord.getPriority() >= Log.CRIT)
_manager.getBuffer().addCritical(dmsg); _manager.getBuffer().addCritical(dmsg);
@ -151,8 +153,10 @@ abstract class LogWriter implements Runnable {
* Return a msg with the date stamp of the last duplicate * Return a msg with the date stamp of the last duplicate
* @since 0.9.3 * @since 0.9.3
*/ */
private String dupMessage(int dupCount, LogRecord lastRecord, boolean reverse) { private String dupMessage(int dupCount, LogRecord lastRecord, boolean reverse, boolean html) {
String arrows = reverse ? (SystemVersion.isAndroid() ? "vvv" : "&darr;&darr;&darr;") : "^^^"; boolean nohtml = !html || SystemVersion.isAndroid();
String arrows = reverse ? (nohtml ? "vvv" : "&darr;&darr;&darr;")
: (nohtml ? "^^^" : "&uarr;&uarr;&uarr;");
return LogRecordFormatter.getWhen(_manager, lastRecord) + ' ' + arrows + ' ' + return LogRecordFormatter.getWhen(_manager, lastRecord) + ' ' + arrows + ' ' +
_t(dupCount, "1 similar message omitted", "{0} similar messages omitted") + ' ' + arrows + _t(dupCount, "1 similar message omitted", "{0} similar messages omitted") + ' ' + arrows +
LogRecordFormatter.NL; LogRecordFormatter.NL;