@Override public void summarize(StopWatch stopWatch, Logger logger) { if (logger.isTraceEnabled()) { logger.trace( "StopWatch '{}': start timestamp(ns): {}, stop timestamp(ns): {}, running time = {} ({} ns) ({} us) ({} ms), task count: {}", new Object[] { stopWatch.getId(), stopWatch.getStartTime(), stopWatch.getStopTime(), DurationFormatUtils.formatDuration( stopWatch.getTotalTime() / DateUtils.NANOS_PER_MILLIS, StopWatchSummary.DATE_FORMAT), stopWatch.getTotalTime(), stopWatch.getTotalTime() / DateUtils.NANOS_PER_MICROS, stopWatch.getTotalTime() / DateUtils.NANOS_PER_MILLIS, stopWatch.getTaskCount() }); if (stopWatch.getTaskCount() == 0) { logger.trace("No task info kept"); } else { TaskInfo[] taskInfos = stopWatch.getTaskInfo(); if (sort) { Arrays.sort( taskInfos, new Comparator<TaskInfo>() { @Override public int compare(TaskInfo o1, TaskInfo o2) { return new ComparableComparator().compare(o2.getTotalTime(), o1.getTotalTime()); } }); } for (TaskInfo task : taskInfos) { logger.trace( "\tTask Name '{}': start timestamp(ns): {}, stop timestamp(ns): {}, running time: {} ({} ns) ({} us) ({} ms) ({})", new Object[] { task.getTaskName(), task.getStartTime(), task.getStopTime(), DurationFormatUtils.formatDuration( task.getTotalTime() / DateUtils.NANOS_PER_MILLIS, StopWatchSummary.DATE_FORMAT), task.getTotalTime(), task.getTotalTime() / DateUtils.NANOS_PER_MICROS, task.getTotalTime() / DateUtils.NANOS_PER_MILLIS, pf.format(task.getTotalTime() / (double) stopWatch.getTotalTime()) }); } } } }