Changeset 3c95f0b6


Ignore:
Timestamp:
Sep 7, 2012 6:53:24 PM (8 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
78203aac
Parents:
3347788
Message:
Location:
core/java/src/net/i2p/util
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • core/java/src/net/i2p/util/LogRecord.java

    r3347788 r3c95f0b6  
    11package net.i2p.util;
     2
     3import net.i2p.data.DataHelper;
    24
    35/*
     
    6062        return _throwable;
    6163    }
     64
     65    /**
     66     *  Matches source class, message string, and throwable class only.
     67     *  @since 0.9.3
     68     */
     69    @Override
     70    public boolean equals(Object o) {
     71        if (!(o instanceof LogRecord))
     72            return false;
     73        LogRecord r = (LogRecord) o;
     74        return _source == r._source &&
     75               DataHelper.eq(_message, r._message) &&
     76               ((_throwable == null && r._throwable == null) ||
     77                (_throwable != null && r._throwable != null && _throwable.getClass() == r._throwable.getClass()));
     78    }
    6279}
  • core/java/src/net/i2p/util/LogWriter.java

    r3347788 r3c95f0b6  
    2727    private final static long CONFIG_READ_INTERVAL = 50 * 1000;
    2828    private final static long FLUSH_INTERVAL = 9 * 1000;
    29     private long _lastReadConfig = 0;
    30     private long _numBytesInCurrentFile = 0;
     29    private long _lastReadConfig;
     30    private long _numBytesInCurrentFile;
    3131    // volatile as it changes on log file rotation
    3232    private volatile Writer _currentOut;
     
    6767
    6868    public void flushRecords() { flushRecords(true); }
     69
    6970    public void flushRecords(boolean shouldWait) {
    7071        try {
     
    7374            if (records == null) return;
    7475            if (!records.isEmpty()) {
     76                LogRecord last = null;
    7577                LogRecord rec;
     78                int dupCount = 0;
    7679                while ((rec = records.poll()) != null) {
    77                     writeRecord(rec);
    78                 }
     80                    if (rec.equals(last)) {
     81                        dupCount++;
     82                    } else {
     83                        if (dupCount > 0) {
     84                            if (dupCount == 1)
     85                                writeRecord("*** 1 similar message omitted\n");
     86                            else
     87                                writeRecord("*** " + dupCount + " similar messages omitted\n");
     88                            dupCount = 0;
     89                        }
     90                        last = rec;
     91                        writeRecord(rec);
     92                    }
     93                }
     94                if (dupCount == 1)
     95                    writeRecord("*** 1 similar message omitted\n");
     96                else if (dupCount > 0)
     97                    writeRecord("*** " + dupCount + " similar messages omitted\n");
    7998                try {
    8099                    if (_currentOut != null)
Note: See TracChangeset for help on using the changeset viewer.