docs: protected java.util.Map captureStatistics()
      {
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.entry(this, cclass
                          , "captureStatistics"
                              );
  
          java.util.Map statistics = super.captureStatistics();
  
          statistics.put("totalBytesWritten", Long.toString(totalBytesWritten));
          statistics.put("totalNumberOfFlushRequests", Long.toString(totalNumberOfFlushRequests));
          statistics.put("totalNumberOfLogBufferWrites", Long.toString(totalNumberOfLogBufferWrites));
          statistics.put("totalNumberOfThreadsFindingFullLogBuffers", Long.toString(totalNumberOfThreadsFindingFullLogBuffers));
          statistics.put("totalNumberOfFlusHelperWaits", Long.toString(totalNumberOfFlushHelperWaits));
          statistics.put("totalNumberOfLogCycles", Long.toString(totalNumberOfLogCycles));
  
          statistics.put("writeStalledMilliseconds", Long.toString(writeStalledMilliseconds));
          statistics.put("writeCopyingMilliseconds", Long.toString(writeCopyingMilliseconds));
  
          statistics.put("flushingMilliseconds", Long.toString(flushingMilliseconds));
          statistics.put("otherMilliseconds", Long.toString(otherMilliseconds));
          statistics.put("flushHelperWaitingMilliseconds", Long.toString(flushHelperWaitingMilliseconds));
          statistics.put("paddingStalledMilliseconds", Long.toString(paddingStalledMilliseconds));
          statistics.put("writeUpdateStatedMilliseconds", Long.toString(writeUpdateStateMilliseconds));
  
          statistics.put("logFullCheckpointsTriggered", Long.toString(logFullCheckpointsTriggered));
          statistics.put("uncheckedBytes", Long.toString(uncheckedBytes));
          statistics.put("uncheckedBytesUpToTruncatePoint", Long.toString(uncheckedBytesUpToMarkPoint));
          statistics.put("getLogFileSpaceLeft()", Long.toString(getLogFileSpaceLeft()));
          statistics.put("fileLogHeader.fileSize", Long.toString(fileLogHeader.fileSize));
          statistics.put("bufferFilePosition+nextFreeByteInLogBuffer", Long.toString(bufferFilePosition + nextFreeByteInLogBuffer));
          statistics.put("stalledForMultiPartID", Long.toString(stalledForMultiPartID));
          statistics.put("totalPaddingBytesWritten", Long.toString(totalPaddingBytesWritten));
          statistics.put("totalPaddingRecords", Long.toString(totalPaddingRecords));
  
          String histogram = "(0-15 >15) ";
          for (int n = 0; n < numberOfFlushWaitersFrequency.length; n++) {
              histogram += numberOfFlushWaitersFrequency[n] + " ";
              numberOfFlushWaitersFrequency[n] = 0;
          }
          statistics.put("numberOfFlushWaitersFrequency", histogram);
  
          histogram = "(0-15 >15) ";
          for (int n = 0; n < numberOfPagesWrittenFrequency.length; n++) {
              histogram += numberOfPagesWrittenFrequency[n] + " ";
              numberOfPagesWrittenFrequency[n] = 0;
          }
          statistics.put("numberOfPagesWritttenFrequency", histogram);
  
          totalBytesWritten = 0; // Number of bytes written so far.
          totalNumberOfFlushRequests = 0; // Number of times flush() was invoked.
          totalNumberOfLogBufferWrites = 0; // Number of times the logBuffer is has written.
          totalNumberOfThreadsFindingFullLogBuffers = 0;
          totalNumberOfFlushHelperWaits = 0; // Number of times the FlushHelper had nothing to do.
          totalNumberOfLogCycles = 0; // Number of times we have cycled through the log.
  
          writeStalledMilliseconds = 0;
          writeCopyingMilliseconds = 0;
          flushingMilliseconds = 0;
          otherMilliseconds = 0;
          flushHelperWaitingMilliseconds = 0;
          paddingStalledMilliseconds = 0;
          writeUpdateStateMilliseconds = 0;
          stalledForMultiPartID = 0;
          totalPaddingBytesWritten = 0;
          totalPaddingRecords = 0;
  
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.exit(this, cclass
                         , "captureStatistics"
                         , new Object[] { statistics }
                              );
          return statistics;
      }