From 915b35f0c1a052afb702b837e89cbd1127014db6 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Sun, 31 May 2015 13:22:36 +0000
Subject: [PATCH] LogWriter: Write dup message to wrapper log and crit buf also

---
 core/java/src/net/i2p/util/LogWriterBase.java | 21 +++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/core/java/src/net/i2p/util/LogWriterBase.java b/core/java/src/net/i2p/util/LogWriterBase.java
index 117e2786ff..053cccdc60 100644
--- a/core/java/src/net/i2p/util/LogWriterBase.java
+++ b/core/java/src/net/i2p/util/LogWriterBase.java
@@ -97,8 +97,7 @@ abstract class LogWriterBase implements Runnable {
                         dupCount++;
                     } else {
                         if (dupCount > 0) {
-                            writeRecord(_last.getPriority(), dupMessage(dupCount, _last, false));
-                            _manager.getBuffer().add(dupMessage(dupCount, _last, true));
+                            writeDupMessage(dupCount, _last);
                             dupCount = 0;
                         }
                         writeRecord(rec);
@@ -106,8 +105,7 @@ abstract class LogWriterBase implements Runnable {
                     _last = rec;
                 }
                 if (dupCount > 0) {
-                    writeRecord(_last.getPriority(), dupMessage(dupCount, _last, false));
-                    _manager.getBuffer().add(dupMessage(dupCount, _last, true));
+                    writeDupMessage(dupCount, _last);
                 }
                 flushWriter();
             }
@@ -125,6 +123,21 @@ abstract class LogWriterBase implements Runnable {
         }
     }
 
+    /**
+     *  Write a msg with the date stamp of the last duplicate
+     *  @since 0.9.21
+     */
+    private void writeDupMessage(int dupCount, LogRecord lastRecord) {
+        String dmsg = dupMessage(dupCount, lastRecord, false);
+        writeRecord(lastRecord.getPriority(), dmsg);
+        if (_manager.getDisplayOnScreenLevel() <= lastRecord.getPriority() && _manager.displayOnScreen())
+            System.out.print(dmsg);
+        dmsg = dupMessage(dupCount, lastRecord, true);
+        _manager.getBuffer().add(dmsg);
+        if (lastRecord.getPriority() >= Log.CRIT)
+            _manager.getBuffer().addCritical(dmsg);
+    }
+
     /**
      *  Return a msg with the date stamp of the last duplicate
      *  @since 0.9.3
-- 
GitLab