package net.gnehzr.tnoodle.utils; import java.util.logging.Level; import java.util.logging.LogRecord; @SuppressWarnings("serial") public class TimedLogRecordStart extends LogRecord { private long startNanos; private String msg; public TimedLogRecordStart(Level level, String msg) { this(level, msg, System.nanoTime()); } public TimedLogRecordStart(Level level, String msg, long startNanos) { super(level, "STARTED " + msg); this.startNanos = startNanos; this.msg = msg; } public TimedLogRecordEnd finishedNow() { return finishedNow(null); } public TimedLogRecordEnd finishedNow(String extraMsg) { return finishedAt(System.nanoTime(), extraMsg); } public TimedLogRecordEnd finishedAt(long endNanos) { return finishedAt(endNanos, null); } public TimedLogRecordEnd finishedAt(long endNanos, String extraMsg) { return new TimedLogRecordEnd(getLevel(), msg, extraMsg, this.startNanos, endNanos); } }