1 ,新建一个处理统计耗时的业务类 public class TimeWatcherObject{ private final Logger log; public static TimeWatcher build(Logger logger) { return new TimeWatcher(logger); } private TimeWatcher(Logger log) { this.log = log; } public <T> void aroundVoid(String label, Supplier<T> action) { LocalDateTime start = LocalDateTime.now(); String endTerm = "结束"; try { this.log.info("【{}】开始", label); action.get(); } catch (Throwable var9) { endTerm = "异常结束"; this.log.error(var9.getMessage(), var9); throw var9; } finally { this.log.info("【{}】{}。耗时 = {}", new Object[]{label, endTerm, Duration.between(start, LocalDateTime.now())}); } }
2,然后在你的业务代码中调用:
TimeWatcherObject.build(log) .aroundVoid(label, () -> { //XX是你要统计耗时的执行方法 XX(); return Optional.empty(); })