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";
}
/***** unused
public String getConnectionLogs() {
return formatMessages(_context.commSystem().getMostRecentErrorMessages());
}
******/
private final static String NL = System.getProperty("line.separator");
/** formats in reverse order */
/** formats in forward order */
private String formatMessages(List<String> msgs) {
if (msgs.isEmpty())
return "</td></tr><tr><td><p><i>" + _t("No log messages") + "</i></p>";
boolean colorize = _context.getBooleanPropertyDefaultTrue("routerconsole.logs.color");
StringBuilder buf = new StringBuilder(16*1024);
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);
// 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;
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
if (msg.endsWith(NL))
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;
private final static long MIN_FLUSH_INTERVAL = 2*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;
protected final LogManager _manager;
@ -137,11 +139,11 @@ abstract class LogWriter implements Runnable {
* @since 0.9.21
*/
private void writeDupMessage(int dupCount, LogRecord lastRecord) {
String dmsg = dupMessage(dupCount, lastRecord, false);
String dmsg = dupMessage(dupCount, lastRecord, false, false);
writeRecord(lastRecord.getPriority(), dmsg);
if (_manager.getDisplayOnScreenLevel() <= lastRecord.getPriority() && _manager.displayOnScreen())
System.out.print(dmsg);
dmsg = dupMessage(dupCount, lastRecord, true);
dmsg = dupMessage(dupCount, lastRecord, BUFFER_DISPLAYED_REVERSE, true);
_manager.getBuffer().add(dmsg);
if (lastRecord.getPriority() >= Log.CRIT)
_manager.getBuffer().addCritical(dmsg);
@ -151,8 +153,10 @@ abstract class LogWriter implements Runnable {
* Return a msg with the date stamp of the last duplicate
* @since 0.9.3
*/
private String dupMessage(int dupCount, LogRecord lastRecord, boolean reverse) {
String arrows = reverse ? (SystemVersion.isAndroid() ? "vvv" : "&darr;&darr;&darr;") : "^^^";
private String dupMessage(int dupCount, LogRecord lastRecord, boolean reverse, boolean html) {
boolean nohtml = !html || SystemVersion.isAndroid();
String arrows = reverse ? (nohtml ? "vvv" : "&darr;&darr;&darr;")
: (nohtml ? "^^^" : "&uarr;&uarr;&uarr;");
return LogRecordFormatter.getWhen(_manager, lastRecord) + ' ' + arrows + ' ' +
_t(dupCount, "1 similar message omitted", "{0} similar messages omitted") + ' ' + arrows +
LogRecordFormatter.NL;